2019-08-01 Edward Smith-Rowland <3dw4rd@verizon.net> Implement C++20 p0202 - Add Constexpr Modifiers to Functions in <algorithm> and <utility> Headers. Implement C++20 p1023 - constexpr comparison operators for std::array. * include/bits/algorithmfwd.h (all_of, any_of, binary_search, copy, copy_backward, copy_if, copy_n, equal_range, fill, find_end, find_if_not, includes, is_heap, is_heap_until, is_partitioned, is_permutation, is_sorted, is_sorted_until, iter_swap, lower_bound, none_of, partition_copy, partition_point, remove, remove_if, remove_copy, remove_copy_if, replace_copy, replace_copy_if, reverse_copy, rotate_copy, uunique, upper_bound, adjacent_find, count, count_if, equal, find, find_first_of, find_if, for_each, generate, generate_n, lexicographical_compare, merge, mismatch, replace, replace_if, search, search_n, set_difference, set_intersection, set_symmetric_difference, set_union, transform, unique_copy): Mark constexpr. * include/bits/cpp_type_traits.h (__miter_base): Mark constexpr. * include/bits/predefined_ops.h (_Iter_less_val::operator(), _Val_less_iter::operator(), _Iter_equal_to_iter::operator(), _Iter_equal_to_val::operator(), _Iter_equals_val::operator()): Use const ref instead of ref arg; (_Iter_less_val, __iter_less_val, _Val_less_iter, __val_less_iter, __iter_equal_to_iter, __iter_equal_to_val, __iter_comp_val, _Iter_comp_val, _Val_comp_iter, __val_comp_iter, __iter_equals_val, _Iter_equals_iter, __iter_comp_iter, _Iter_pred, __pred_iter, _Iter_comp_to_val, __iter_comp_val, _Iter_comp_to_iter, __iter_comp_iter): Mark constexpr. * include/bits/stl_algo.h (__find_if, __find_if_not, __find_if_not_n, __search, __search_n_aux, __search_n, __find_end, find_end, all_of, none_of, any_of, find_if_not, is_partitioned, partition_point, __remove_copy_if, remove_copy, remove_copy_if, copy_if, __copy_n, copy_n, partition_copy, __remove_if, remove, remove_if, __adjacent_find, __unique, unique, __unique_copy, reverse_copy, rotate_copy, __unguarded_linear_insert, __insertion_sort, __unguarded_insertion_sort, __final_insertion_sort, lower_bound, __upper_bound, upper_bound, __equal_range, equal_range, binary_search, __includes, includes, __next_permutation, __prev_permutation, __replace_copy_if, replace_copy, replace_copy_if, __count_if, is_sorted, __is_sorted_until, is_sorted_until, __is_permutation, is_permutation, for_each, find, find_if, find_first_of, adjacent_find, count, count_if, search, search_n, transform, replace, replace_if, generate, generate_n, unique_copy, __merge, merge, __set_union, set_union, __set_intersection, set_intersection, __set_difference, set_difference, __set_symmetric_difference, set_symmetric_difference): Mark constexpr. * include/bits/stl_algobase.h (__memmove, __memcmp): New maybe constexpr wrappers around __builtin_memmove and __builtin_memcmp respectively; (__niter_base, __niter_wrap, __copy_m, __copy_move_a, __copy_move_a2, copy, move, __copy_move_b, __copy_move_backward_a, __copy_move_backward_a2, copy_backward, move_backward, __fill_a, fill, __fill_n_a, fill_n, equal, __lc_rai::__newlast1, __lc_rai::__cnd2, __lexicographical_compare_impl, __lexicographical_compare, __lexicographical_compare<true>::__lc, __lexicographical_compare_aux, __lower_bound, lower_bound, equal, __equal4, lexicographical_compare, __mismatch, mismatch, __is_heap_until, __is_heap, is_heap_until, is_heap): Mark constexpr. * include/bits/stl_heap.h (__is_heap_until, __is_heap, is_heap_until, is_heap): Mark constexpr. * include/bits/stl_iterator.h (__niter_base, __miter_base): Mark constexpr. * include/std/array: Make comparison ops constexpr. * include/std/utility: Make exchange constexpr. * include/std/version (__cpp_lib_constexpr_algorithms): New macro. * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust. * testsuite/23_containers/array/tuple_interface/ tuple_element_neg.cc: Adjust. * testsuite/20_util/exchange/constexpr.cc: New. * testsuite/23_containers/array/comparison_operators/constexpr.cc: New. * testsuite/25_algorithms/constexpr_macro.cc: New. * testsuite/25_algorithms/adjacent_find/constexpr.cc: New. * testsuite/25_algorithms/all_of/constexpr.cc: New. * testsuite/25_algorithms/any_of/constexpr.cc: New. * testsuite/25_algorithms/binary_search/constexpr.cc: New. * testsuite/25_algorithms/copy/constexpr.cc: New. * testsuite/25_algorithms/copy_backward/constexpr.cc: New. * testsuite/25_algorithms/copy_if/constexpr.cc: New. * testsuite/25_algorithms/copy_n/constexpr.cc: New. * testsuite/25_algorithms/count/constexpr.cc: New. * testsuite/25_algorithms/count_if/constexpr.cc: New. * testsuite/25_algorithms/equal/constexpr.cc: New. * testsuite/25_algorithms/equal_range/constexpr.cc: New. * testsuite/25_algorithms/fill/constexpr.cc: New. * testsuite/25_algorithms/fill_n/constexpr.cc: New. * testsuite/25_algorithms/find/constexpr.cc: New. * testsuite/25_algorithms/find_end/constexpr.cc: New. * testsuite/25_algorithms/find_first_of/constexpr.cc: New. * testsuite/25_algorithms/find_if/constexpr.cc: New. * testsuite/25_algorithms/find_if_not/constexpr.cc: New. * testsuite/25_algorithms/for_each/constexpr.cc: New. * testsuite/25_algorithms/generate/constexpr.cc: New. * testsuite/25_algorithms/generate_n/constexpr.cc: New. * testsuite/25_algorithms/is_heap/constexpr.cc: New. * testsuite/25_algorithms/is_heap_until/constexpr.cc: New. * testsuite/25_algorithms/is_partitioned/constexpr.cc: New. * testsuite/25_algorithms/is_permutation/constexpr.cc: New. * testsuite/25_algorithms/is_sorted/constexpr.cc: New. * testsuite/25_algorithms/is_sorted_until/constexpr.cc: New. * testsuite/25_algorithms/lexicographical_compare/constexpr.cc: New. * testsuite/25_algorithms/lower_bound/constexpr.cc: New. * testsuite/25_algorithms/merge/constexpr.cc: New. * testsuite/25_algorithms/mismatch/constexpr.cc: New. * testsuite/25_algorithms/none_of/constexpr.cc: New. * testsuite/25_algorithms/partition_copy/constexpr.cc: New. * testsuite/25_algorithms/partition_point/constexpr.cc: New. * testsuite/25_algorithms/remove/constexpr.cc: New. * testsuite/25_algorithms/remove_copy/constexpr.cc: New. * testsuite/25_algorithms/remove_copy_if/constexpr.cc: New. * testsuite/25_algorithms/remove_if/constexpr.cc: New. * testsuite/25_algorithms/replace_copy/constexpr.cc: New. * testsuite/25_algorithms/replace_copy_if/constexpr.cc: New. * testsuite/25_algorithms/replace_if/constexpr.cc: New. * testsuite/25_algorithms/reverse_copy/constexpr.cc: New. * testsuite/25_algorithms/rotate_copy/constexpr.cc: New. * testsuite/25_algorithms/search/constexpr.cc: New. * testsuite/25_algorithms/search_n/constexpr.cc: New. * testsuite/25_algorithms/set_difference/constexpr.cc: New. * testsuite/25_algorithms/set_intersection/constexpr.cc: New. * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc: New. * testsuite/25_algorithms/set_union/constexpr.cc: New. * testsuite/25_algorithms/transform/constexpr.cc: New. * testsuite/25_algorithms/unique/constexpr.cc: New. * testsuite/25_algorithms/unique_copy/constexpr.cc: New. * testsuite/25_algorithms/upper_bound/constexpr.cc: New. From-SVN: r273975
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
algorithmfwd.h | Loading commit data... | |
alloc_traits.h | Loading commit data... | |
allocated_ptr.h | Loading commit data... | |
allocator.h | Loading commit data... | |
atomic_base.h | Loading commit data... | |
atomic_futex.h | Loading commit data... | |
basic_ios.h | Loading commit data... | |
basic_ios.tcc | Loading commit data... | |
basic_string.h | Loading commit data... | |
basic_string.tcc | Loading commit data... | |
boost_concept_check.h | Loading commit data... | |
c++0x_warning.h | Loading commit data... | |
c++config | Loading commit data... | |
char_traits.h | Loading commit data... | |
charconv.h | Loading commit data... | |
codecvt.h | Loading commit data... | |
concept_check.h | Loading commit data... | |
cpp_type_traits.h | Loading commit data... | |
deque.tcc | Loading commit data... | |
enable_special_members.h | Loading commit data... | |
erase_if.h | Loading commit data... | |
forward_list.h | Loading commit data... | |
forward_list.tcc | Loading commit data... | |
fs_dir.h | Loading commit data... | |
fs_fwd.h | Loading commit data... | |
fs_ops.h | Loading commit data... | |
fs_path.h | Loading commit data... | |
fstream.tcc | Loading commit data... | |
functexcept.h | Loading commit data... | |
functional_hash.h | Loading commit data... | |
gslice.h | Loading commit data... | |
gslice_array.h | Loading commit data... | |
hashtable.h | Loading commit data... | |
hashtable_policy.h | Loading commit data... | |
indirect_array.h | Loading commit data... | |
invoke.h | Loading commit data... | |
ios_base.h | Loading commit data... | |
istream.tcc | Loading commit data... | |
list.tcc | Loading commit data... | |
locale_classes.h | Loading commit data... | |
locale_classes.tcc | Loading commit data... | |
locale_conv.h | Loading commit data... | |
locale_facets.h | Loading commit data... | |
locale_facets.tcc | Loading commit data... | |
locale_facets_nonio.h | Loading commit data... | |
locale_facets_nonio.tcc | Loading commit data... | |
localefwd.h | Loading commit data... | |
mask_array.h | Loading commit data... | |
memoryfwd.h | Loading commit data... | |
move.h | Loading commit data... | |
node_handle.h | Loading commit data... | |
ostream.tcc | Loading commit data... | |
ostream_insert.h | Loading commit data... | |
parse_numbers.h | Loading commit data... | |
postypes.h | Loading commit data... | |
predefined_ops.h | Loading commit data... | |
ptr_traits.h | Loading commit data... | |
quoted_string.h | Loading commit data... | |
random.h | Loading commit data... | |
random.tcc | Loading commit data... | |
range_access.h | Loading commit data... | |
refwrap.h | Loading commit data... | |
regex.h | Loading commit data... | |
regex.tcc | Loading commit data... | |
regex_automaton.h | Loading commit data... | |
regex_automaton.tcc | Loading commit data... | |
regex_compiler.h | Loading commit data... | |
regex_compiler.tcc | Loading commit data... | |
regex_constants.h | Loading commit data... | |
regex_error.h | Loading commit data... | |
regex_executor.h | Loading commit data... | |
regex_executor.tcc | Loading commit data... | |
regex_scanner.h | Loading commit data... | |
regex_scanner.tcc | Loading commit data... | |
shared_ptr.h | Loading commit data... | |
shared_ptr_atomic.h | Loading commit data... | |
shared_ptr_base.h | Loading commit data... | |
slice_array.h | Loading commit data... | |
specfun.h | Loading commit data... | |
sstream.tcc | Loading commit data... | |
std_abs.h | Loading commit data... | |
std_function.h | Loading commit data... | |
std_mutex.h | Loading commit data... | |
stl_algo.h | Loading commit data... | |
stl_algobase.h | Loading commit data... | |
stl_bvector.h | Loading commit data... | |
stl_construct.h | Loading commit data... | |
stl_deque.h | Loading commit data... | |
stl_function.h | Loading commit data... | |
stl_heap.h | Loading commit data... | |
stl_iterator.h | Loading commit data... | |
stl_iterator_base_funcs.h | Loading commit data... | |
stl_iterator_base_types.h | Loading commit data... | |
stl_list.h | Loading commit data... | |
stl_map.h | Loading commit data... | |
stl_multimap.h | Loading commit data... | |
stl_multiset.h | Loading commit data... | |
stl_numeric.h | Loading commit data... | |
stl_pair.h | Loading commit data... | |
stl_queue.h | Loading commit data... | |
stl_raw_storage_iter.h | Loading commit data... | |
stl_relops.h | Loading commit data... | |
stl_set.h | Loading commit data... | |
stl_stack.h | Loading commit data... | |
stl_tempbuf.h | Loading commit data... | |
stl_tree.h | Loading commit data... | |
stl_uninitialized.h | Loading commit data... | |
stl_vector.h | Loading commit data... | |
stream_iterator.h | Loading commit data... | |
streambuf.tcc | Loading commit data... | |
streambuf_iterator.h | Loading commit data... | |
string_view.tcc | Loading commit data... | |
stringfwd.h | Loading commit data... | |
uniform_int_dist.h | Loading commit data... | |
unique_lock.h | Loading commit data... | |
unique_ptr.h | Loading commit data... | |
unordered_map.h | Loading commit data... | |
unordered_set.h | Loading commit data... | |
uses_allocator.h | Loading commit data... | |
valarray_after.h | Loading commit data... | |
valarray_array.h | Loading commit data... | |
valarray_array.tcc | Loading commit data... | |
valarray_before.h | Loading commit data... | |
vector.tcc | Loading commit data... |