Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[libc++][C++03] Remove code that is not used in C++03 #134045

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

philnik777
Copy link
Contributor

@philnik777 philnik777 commented Apr 2, 2025

This patch removes code which is guarded by _LIBCPP_STD_VER and _LIBCPP_CXX03_LANG.

This is part of https://discourse.llvm.org/t/rfc-freezing-c-03-headers-in-libc.

@philnik777 philnik777 requested a review from a team as a code owner April 2, 2025 07:55
@llvmbot llvmbot added the libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi. label Apr 2, 2025
@llvmbot
Copy link
Member

llvmbot commented Apr 2, 2025

@llvm/pr-subscribers-libcxx

Author: Nikolas Klauser (philnik777)

Changes

Patch is 971.67 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/134045.diff

308 Files Affected:

  • (modified) libcxx/include/__cxx03/__algorithm/equal.h (-59)
  • (modified) libcxx/include/__cxx03/__algorithm/for_each.h (-15)
  • (modified) libcxx/include/__cxx03/__algorithm/is_permutation.h (-53)
  • (modified) libcxx/include/__cxx03/__algorithm/iterator_operations.h (-25)
  • (modified) libcxx/include/__cxx03/__algorithm/make_projected.h (-29)
  • (modified) libcxx/include/__cxx03/__algorithm/max.h (-15)
  • (modified) libcxx/include/__cxx03/__algorithm/min.h (-15)
  • (modified) libcxx/include/__cxx03/__algorithm/minmax.h (-19)
  • (modified) libcxx/include/__cxx03/__algorithm/mismatch.h (-46)
  • (modified) libcxx/include/__cxx03/__algorithm/search.h (-9)
  • (modified) libcxx/include/__cxx03/__algorithm/shuffle.h (+1-10)
  • (modified) libcxx/include/__cxx03/__algorithm/simd_utils.h (+1-5)
  • (modified) libcxx/include/__cxx03/__algorithm/sort.h (-22)
  • (modified) libcxx/include/__cxx03/__algorithm/three_way_comp_ref_type.h (-48)
  • (modified) libcxx/include/__cxx03/__algorithm/uniform_random_bit_generator_adaptor.h (-38)
  • (modified) libcxx/include/__cxx03/__algorithm/unwrap_iter.h (-8)
  • (modified) libcxx/include/__cxx03/__algorithm/unwrap_range.h (-51)
  • (modified) libcxx/include/__cxx03/__atomic/aliases.h (-25)
  • (modified) libcxx/include/__cxx03/__atomic/atomic.h (-134)
  • (modified) libcxx/include/__cxx03/__atomic/atomic_base.h (-8)
  • (modified) libcxx/include/__cxx03/__atomic/atomic_flag.h (-5)
  • (modified) libcxx/include/__cxx03/__atomic/atomic_init.h (-4)
  • (modified) libcxx/include/__cxx03/__atomic/cxx_atomic_impl.h (-8)
  • (modified) libcxx/include/__cxx03/__atomic/memory_order.h (-25)
  • (modified) libcxx/include/__cxx03/__bit/countl.h (-14)
  • (modified) libcxx/include/__cxx03/__bit/countr.h (-14)
  • (modified) libcxx/include/__cxx03/__bit/popcount.h (-26)
  • (modified) libcxx/include/__cxx03/__bit/rotate.h (-14)
  • (modified) libcxx/include/__cxx03/__bit_reference (+1-30)
  • (modified) libcxx/include/__cxx03/__chrono/duration.h (+2-125)
  • (modified) libcxx/include/__cxx03/__chrono/system_clock.h (-9)
  • (modified) libcxx/include/__cxx03/__chrono/time_point.h (-36)
  • (modified) libcxx/include/__cxx03/__config (+18-130)
  • (modified) libcxx/include/__cxx03/__configuration/language.h (-19)
  • (modified) libcxx/include/__cxx03/__debug_utils/randomize_range.h (+1-3)
  • (modified) libcxx/include/__cxx03/__exception/operations.h (-3)
  • (modified) libcxx/include/__cxx03/__functional/binary_function.h (-11)
  • (modified) libcxx/include/__cxx03/__functional/binary_negate.h (-4)
  • (modified) libcxx/include/__cxx03/__functional/bind.h (-226)
  • (modified) libcxx/include/__cxx03/__functional/binder1st.h (-4)
  • (modified) libcxx/include/__cxx03/__functional/binder2nd.h (-4)
  • (modified) libcxx/include/__cxx03/__functional/hash.h (-33)
  • (modified) libcxx/include/__cxx03/__functional/identity.h (-20)
  • (modified) libcxx/include/__cxx03/__functional/mem_fun_ref.h (-4)
  • (modified) libcxx/include/__cxx03/__functional/operations.h (-328)
  • (modified) libcxx/include/__cxx03/__functional/pointer_to_binary_function.h (-4)
  • (modified) libcxx/include/__cxx03/__functional/pointer_to_unary_function.h (-4)
  • (modified) libcxx/include/__cxx03/__functional/reference_wrapper.h (-58)
  • (modified) libcxx/include/__cxx03/__functional/unary_function.h (-11)
  • (modified) libcxx/include/__cxx03/__functional/unary_negate.h (-4)
  • (modified) libcxx/include/__cxx03/__functional/weak_result_type.h (-22)
  • (modified) libcxx/include/__cxx03/__fwd/array.h (-8)
  • (modified) libcxx/include/__cxx03/__fwd/complex.h (-16)
  • (modified) libcxx/include/__cxx03/__fwd/pair.h (-10)
  • (modified) libcxx/include/__cxx03/__fwd/string.h (-33)
  • (modified) libcxx/include/__cxx03/__fwd/tuple.h (-26)
  • (modified) libcxx/include/__cxx03/__hash_table (-161)
  • (modified) libcxx/include/__cxx03/__iterator/access.h (-41)
  • (modified) libcxx/include/__cxx03/__iterator/advance.h (-127)
  • (modified) libcxx/include/__cxx03/__iterator/back_insert_iterator.h (-13)
  • (modified) libcxx/include/__cxx03/__iterator/bounded_iter.h (-24)
  • (modified) libcxx/include/__cxx03/__iterator/cpp17_iterator_concepts.h (-149)
  • (modified) libcxx/include/__cxx03/__iterator/distance.h (-47)
  • (modified) libcxx/include/__cxx03/__iterator/front_insert_iterator.h (-13)
  • (modified) libcxx/include/__cxx03/__iterator/insert_iterator.h (-19)
  • (modified) libcxx/include/__cxx03/__iterator/istream_iterator.h (-13)
  • (modified) libcxx/include/__cxx03/__iterator/istreambuf_iterator.h (-13)
  • (modified) libcxx/include/__cxx03/__iterator/iterator_traits.h (-272)
  • (modified) libcxx/include/__cxx03/__iterator/move_iterator.h (-153)
  • (modified) libcxx/include/__cxx03/__iterator/next.h (-42)
  • (modified) libcxx/include/__cxx03/__iterator/ostream_iterator.h (-6)
  • (modified) libcxx/include/__cxx03/__iterator/ostreambuf_iterator.h (-6)
  • (modified) libcxx/include/__cxx03/__iterator/prev.h (-36)
  • (modified) libcxx/include/__cxx03/__iterator/reverse_iterator.h (-114)
  • (modified) libcxx/include/__cxx03/__iterator/wrap_iter.h (+2-35)
  • (modified) libcxx/include/__cxx03/__locale (-2)
  • (modified) libcxx/include/__cxx03/__locale_dir/locale_base_api/ibm.h (+1-1)
  • (modified) libcxx/include/__cxx03/__math/hypot.h (-51)
  • (modified) libcxx/include/__cxx03/__memory/addressof.h (-5)
  • (modified) libcxx/include/__cxx03/__memory/aligned_alloc.h (-11)
  • (modified) libcxx/include/__cxx03/__memory/allocate_at_least.h (-11)
  • (modified) libcxx/include/__cxx03/__memory/allocator.h (-95)
  • (modified) libcxx/include/__cxx03/__memory/allocator_arg_t.h (-43)
  • (modified) libcxx/include/__cxx03/__memory/allocator_traits.h (-47)
  • (modified) libcxx/include/__cxx03/__memory/assume_aligned.h (-9)
  • (modified) libcxx/include/__cxx03/__memory/auto_ptr.h (-4)
  • (modified) libcxx/include/__cxx03/__memory/compressed_pair.h (-22)
  • (modified) libcxx/include/__cxx03/__memory/construct_at.h (-50)
  • (modified) libcxx/include/__cxx03/__memory/pointer_traits.h (-87)
  • (modified) libcxx/include/__cxx03/__memory/raw_storage_iterator.h (-19)
  • (modified) libcxx/include/__cxx03/__memory/shared_ptr.h (+2-476)
  • (modified) libcxx/include/__cxx03/__memory/swap_allocator.h (-8)
  • (modified) libcxx/include/__cxx03/__memory/temp_value.h (-10)
  • (modified) libcxx/include/__cxx03/__memory/uninitialized_algorithms.h (-341)
  • (modified) libcxx/include/__cxx03/__memory/unique_ptr.h (+1-112)
  • (modified) libcxx/include/__cxx03/__memory/uses_allocator.h (-5)
  • (modified) libcxx/include/__cxx03/__mutex/once_flag.h (-58)
  • (modified) libcxx/include/__cxx03/__mutex/tag_types.h (-10)
  • (modified) libcxx/include/__cxx03/__numeric/accumulate.h (-8)
  • (modified) libcxx/include/__cxx03/__numeric/adjacent_difference.h (-8)
  • (modified) libcxx/include/__cxx03/__numeric/inner_product.h (-8)
  • (modified) libcxx/include/__cxx03/__numeric/partial_sum.h (-8)
  • (modified) libcxx/include/__cxx03/__ostream/basic_ostream.h (-63)
  • (modified) libcxx/include/__cxx03/__random/bernoulli_distribution.h (-5)
  • (modified) libcxx/include/__cxx03/__random/binomial_distribution.h (-6)
  • (modified) libcxx/include/__cxx03/__random/cauchy_distribution.h (-6)
  • (modified) libcxx/include/__cxx03/__random/chi_squared_distribution.h (-5)
  • (modified) libcxx/include/__cxx03/__random/discard_block_engine.h (-11)
  • (modified) libcxx/include/__cxx03/__random/discrete_distribution.h (-6)
  • (modified) libcxx/include/__cxx03/__random/exponential_distribution.h (-5)
  • (modified) libcxx/include/__cxx03/__random/extreme_value_distribution.h (-6)
  • (modified) libcxx/include/__cxx03/__random/fisher_f_distribution.h (-6)
  • (modified) libcxx/include/__cxx03/__random/gamma_distribution.h (-6)
  • (modified) libcxx/include/__cxx03/__random/generate_canonical.h (-4)
  • (modified) libcxx/include/__cxx03/__random/geometric_distribution.h (-5)
  • (modified) libcxx/include/__cxx03/__random/independent_bits_engine.h (-7)
  • (modified) libcxx/include/__cxx03/__random/linear_congruential_engine.h (-5)
  • (modified) libcxx/include/__cxx03/__random/lognormal_distribution.h (-5)
  • (modified) libcxx/include/__cxx03/__random/mersenne_twister_engine.h (-5)
  • (modified) libcxx/include/__cxx03/__random/negative_binomial_distribution.h (-5)
  • (modified) libcxx/include/__cxx03/__random/normal_distribution.h (-6)
  • (modified) libcxx/include/__cxx03/__random/piecewise_constant_distribution.h (-33)
  • (modified) libcxx/include/__cxx03/__random/piecewise_linear_distribution.h (-33)
  • (modified) libcxx/include/__cxx03/__random/poisson_distribution.h (-5)
  • (modified) libcxx/include/__cxx03/__random/random_device.h (-5)
  • (modified) libcxx/include/__cxx03/__random/seed_seq.h (-6)
  • (modified) libcxx/include/__cxx03/__random/shuffle_order_engine.h (-8)
  • (modified) libcxx/include/__cxx03/__random/student_t_distribution.h (-5)
  • (modified) libcxx/include/__cxx03/__random/subtract_with_carry_engine.h (-5)
  • (modified) libcxx/include/__cxx03/__random/uniform_int_distribution.h (-11)
  • (modified) libcxx/include/__cxx03/__random/uniform_real_distribution.h (-6)
  • (modified) libcxx/include/__cxx03/__random/weibull_distribution.h (-6)
  • (modified) libcxx/include/__cxx03/__string/char_traits.h (-6)
  • (modified) libcxx/include/__cxx03/__string/constexpr_c_functions.h (-8)
  • (modified) libcxx/include/__cxx03/__system_error/error_category.h (-10)
  • (modified) libcxx/include/__cxx03/__system_error/error_code.h (-19)
  • (modified) libcxx/include/__cxx03/__system_error/error_condition.h (-20)
  • (modified) libcxx/include/__cxx03/__thread/id.h (-18)
  • (modified) libcxx/include/__cxx03/__thread/thread.h (-39)
  • (modified) libcxx/include/__cxx03/__tree (+2-173)
  • (modified) libcxx/include/__cxx03/__tuple/find_index.h (-42)
  • (modified) libcxx/include/__cxx03/__tuple/make_tuple_types.h (-52)
  • (modified) libcxx/include/__cxx03/__tuple/sfinae_helpers.h (-106)
  • (modified) libcxx/include/__cxx03/__tuple/tuple_element.h (-15)
  • (modified) libcxx/include/__cxx03/__tuple/tuple_indices.h (-17)
  • (modified) libcxx/include/__cxx03/__tuple/tuple_like.h (-16)
  • (modified) libcxx/include/__cxx03/__tuple/tuple_like_ext.h (-5)
  • (modified) libcxx/include/__cxx03/__tuple/tuple_like_no_subrange.h (-32)
  • (modified) libcxx/include/__cxx03/__tuple/tuple_size.h (-38)
  • (modified) libcxx/include/__cxx03/__type_traits/add_const.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/add_cv.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/add_lvalue_reference.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/add_pointer.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/add_rvalue_reference.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/add_volatile.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/aligned_storage.h (-9)
  • (modified) libcxx/include/__cxx03/__type_traits/aligned_union.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/alignment_of.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/common_type.h (-23)
  • (modified) libcxx/include/__cxx03/__type_traits/conditional.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/conjunction.h (-16)
  • (modified) libcxx/include/__cxx03/__type_traits/decay.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/disjunction.h (-10)
  • (modified) libcxx/include/__cxx03/__type_traits/enable_if.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/extent.h (-10)
  • (modified) libcxx/include/__cxx03/__type_traits/has_virtual_destructor.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/integral_constant.h (-8)
  • (modified) libcxx/include/__cxx03/__type_traits/invoke.h (-49)
  • (modified) libcxx/include/__cxx03/__type_traits/is_abstract.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/is_arithmetic.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/is_array.h (-10)
  • (modified) libcxx/include/__cxx03/__type_traits/is_assignable.h (-15)
  • (modified) libcxx/include/__cxx03/__type_traits/is_base_of.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/is_bounded_array.h (-12)
  • (modified) libcxx/include/__cxx03/__type_traits/is_class.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/is_compound.h (-10)
  • (modified) libcxx/include/__cxx03/__type_traits/is_const.h (-10)
  • (modified) libcxx/include/__cxx03/__type_traits/is_constant_evaluated.h (-6)
  • (modified) libcxx/include/__cxx03/__type_traits/is_constructible.h (-20)
  • (modified) libcxx/include/__cxx03/__type_traits/is_convertible.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/is_destructible.h (-10)
  • (modified) libcxx/include/__cxx03/__type_traits/is_empty.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/is_enum.h (-15)
  • (modified) libcxx/include/__cxx03/__type_traits/is_execution_policy.h (-40)
  • (modified) libcxx/include/__cxx03/__type_traits/is_final.h (-10)
  • (modified) libcxx/include/__cxx03/__type_traits/is_floating_point.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/is_function.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/is_fundamental.h (-10)
  • (modified) libcxx/include/__cxx03/__type_traits/is_implicitly_default_constructible.h (-22)
  • (modified) libcxx/include/__cxx03/__type_traits/is_integral.h (-10)
  • (modified) libcxx/include/__cxx03/__type_traits/is_literal_type.h (-7)
  • (modified) libcxx/include/__cxx03/__type_traits/is_member_pointer.h (-11)
  • (modified) libcxx/include/__cxx03/__type_traits/is_nothrow_assignable.h (-15)
  • (modified) libcxx/include/__cxx03/__type_traits/is_nothrow_constructible.h (-20)
  • (modified) libcxx/include/__cxx03/__type_traits/is_nothrow_destructible.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/is_null_pointer.h (-10)
  • (modified) libcxx/include/__cxx03/__type_traits/is_object.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/is_pod.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/is_pointer.h (-10)
  • (modified) libcxx/include/__cxx03/__type_traits/is_polymorphic.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/is_reference.h (-20)
  • (modified) libcxx/include/__cxx03/__type_traits/is_same.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/is_scalar.h (-10)
  • (modified) libcxx/include/__cxx03/__type_traits/is_signed.h (-10)
  • (modified) libcxx/include/__cxx03/__type_traits/is_specialization.h (-10)
  • (modified) libcxx/include/__cxx03/__type_traits/is_standard_layout.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/is_swappable.h (-42)
  • (modified) libcxx/include/__cxx03/__type_traits/is_trivial.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/is_trivially_assignable.h (-15)
  • (modified) libcxx/include/__cxx03/__type_traits/is_trivially_constructible.h (-20)
  • (modified) libcxx/include/__cxx03/__type_traits/is_trivially_copyable.h (-10)
  • (modified) libcxx/include/__cxx03/__type_traits/is_trivially_destructible.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/is_unbounded_array.h (-12)
  • (modified) libcxx/include/__cxx03/__type_traits/is_union.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/is_unsigned.h (-10)
  • (modified) libcxx/include/__cxx03/__type_traits/is_void.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/is_volatile.h (-10)
  • (modified) libcxx/include/__cxx03/__type_traits/make_32_64_or_128_bit.h (-3)
  • (modified) libcxx/include/__cxx03/__type_traits/make_signed.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/make_unsigned.h (-12)
  • (modified) libcxx/include/__cxx03/__type_traits/nat.h (+1-8)
  • (modified) libcxx/include/__cxx03/__type_traits/negation.h (-7)
  • (modified) libcxx/include/__cxx03/__type_traits/noexcept_move_assign_container.h (+2-8)
  • (modified) libcxx/include/__cxx03/__type_traits/rank.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/remove_all_extents.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/remove_const.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/remove_cv.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/remove_cvref.h (-10)
  • (modified) libcxx/include/__cxx03/__type_traits/remove_extent.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/remove_pointer.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/remove_reference.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/remove_volatile.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/result_of.h (-7)
  • (modified) libcxx/include/__cxx03/__type_traits/strip_signature.h (-63)
  • (modified) libcxx/include/__cxx03/__type_traits/type_identity.h (-9)
  • (modified) libcxx/include/__cxx03/__type_traits/underlying_type.h (-5)
  • (modified) libcxx/include/__cxx03/__type_traits/unwrap_ref.h (+1-22)
  • (modified) libcxx/include/__cxx03/__type_traits/void_t.h (-5)
  • (modified) libcxx/include/__cxx03/__utility/as_lvalue.h (-9)
  • (modified) libcxx/include/__cxx03/__utility/integer_sequence.h (-42)
  • (modified) libcxx/include/__cxx03/__utility/pair.h (+1-429)
  • (modified) libcxx/include/__cxx03/__utility/piecewise_construct.h (-6)
  • (modified) libcxx/include/__cxx03/__utility/small_buffer.h (-73)
  • (modified) libcxx/include/__cxx03/__utility/swap.h (-5)
  • (modified) libcxx/include/__cxx03/__utility/unreachable.h (-6)
  • (modified) libcxx/include/__cxx03/__variant/monostate.h (-38)
  • (modified) libcxx/include/__cxx03/algorithm (+1-5)
  • (modified) libcxx/include/__cxx03/array (+1-50)
  • (modified) libcxx/include/__cxx03/atomic (+2-2)
  • (modified) libcxx/include/__cxx03/bitset (+1-51)
  • (modified) libcxx/include/__cxx03/chrono (+2-10)
  • (modified) libcxx/include/__cxx03/cmath (+1-40)
  • (modified) libcxx/include/__cxx03/codecvt (+1-5)
  • (modified) libcxx/include/__cxx03/complex (+1-145)
  • (modified) libcxx/include/__cxx03/condition_variable (+1-99)
  • (modified) libcxx/include/__cxx03/cstddef (-69)
  • (modified) libcxx/include/__cxx03/cstdio (-2)
  • (modified) libcxx/include/__cxx03/cstdlib (-7)
  • (modified) libcxx/include/__cxx03/ctime (-6)
  • (modified) libcxx/include/__cxx03/cuchar (-16)
  • (modified) libcxx/include/__cxx03/cwchar (+1-5)
  • (modified) libcxx/include/__cxx03/deque (+3-457)
  • (modified) libcxx/include/__cxx03/exception (+1-1)
  • (modified) libcxx/include/__cxx03/ext/hash_map (+1-8)
  • (modified) libcxx/include/__cxx03/ext/hash_set (+1-1)
  • (modified) libcxx/include/__cxx03/forward_list (+1-306)
  • (modified) libcxx/include/__cxx03/fstream (+1-113)
  • (modified) libcxx/include/__cxx03/functional (+3-8)
  • (modified) libcxx/include/__cxx03/future (+2-118)
  • (modified) libcxx/include/__cxx03/iomanip (-32)
  • (modified) libcxx/include/__cxx03/ios (+1-12)
  • (modified) libcxx/include/__cxx03/iosfwd (-20)
  • (modified) libcxx/include/__cxx03/istream (+1-28)
  • (modified) libcxx/include/__cxx03/iterator (+1-1)
  • (modified) libcxx/include/__cxx03/limits (+1-1)
  • (modified) libcxx/include/__cxx03/list (+1-346)
  • (modified) libcxx/include/__cxx03/locale (+1-33)
  • (modified) libcxx/include/__cxx03/map (+1-813)
  • (modified) libcxx/include/__cxx03/memory (+1-15)
  • (modified) libcxx/include/__cxx03/mutex (+1-140)
  • (modified) libcxx/include/__cxx03/new (+2-38)
  • (modified) libcxx/include/__cxx03/numeric (+2-2)
  • (modified) libcxx/include/__cxx03/ostream (+1-5)
  • (modified) libcxx/include/__cxx03/queue (+1-351)
  • (modified) libcxx/include/__cxx03/random (+1-1)
  • (modified) libcxx/include/__cxx03/ratio (+1-57)
  • (modified) libcxx/include/__cxx03/regex (+1-181)
  • (modified) libcxx/include/__cxx03/set (+1-556)
  • (modified) libcxx/include/__cxx03/sstream (+4-382)
  • (modified) libcxx/include/__cxx03/stack (+1-117)
  • (modified) libcxx/include/__cxx03/stdatomic.h (+2-2)
  • (modified) libcxx/include/__cxx03/stdexcept (+1-1)
  • (modified) libcxx/include/__cxx03/streambuf (+1-1)
  • (modified) libcxx/include/__cxx03/string (+2-628)
  • (modified) libcxx/include/__cxx03/string_view (+2-153)
  • (modified) libcxx/include/__cxx03/strstream (-84)
  • (modified) libcxx/include/__cxx03/system_error (+1-1)
  • (modified) libcxx/include/__cxx03/thread (+2-2)
  • (modified) libcxx/include/__cxx03/type_traits (-22)
  • (modified) libcxx/include/__cxx03/typeindex (+1-12)
  • (modified) libcxx/include/__cxx03/typeinfo (+1-5)
  • (modified) libcxx/include/__cxx03/uchar.h (-15)
  • (modified) libcxx/include/__cxx03/unordered_map (+1-1054)
  • (modified) libcxx/include/__cxx03/unordered_set (+5-749)
  • (modified) libcxx/include/__cxx03/utility (+2-10)
  • (modified) libcxx/include/__cxx03/valarray (+1-162)
diff --git a/libcxx/include/__cxx03/__algorithm/equal.h b/libcxx/include/__cxx03/__algorithm/equal.h
index 25b2d5ba0a825..e1d458590e614 100644
--- a/libcxx/include/__cxx03/__algorithm/equal.h
+++ b/libcxx/include/__cxx03/__algorithm/equal.h
@@ -66,65 +66,6 @@ equal(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first
   return std::equal(__first1, __last1, __first2, __equal_to());
 }
 
-#if _LIBCPP_STD_VER >= 14
-
-template <class _Iter1, class _Sent1, class _Iter2, class _Sent2, class _Pred, class _Proj1, class _Proj2>
-_LIBCPP_NODISCARD inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 bool __equal_impl(
-    _Iter1 __first1, _Sent1 __last1, _Iter2 __first2, _Sent2 __last2, _Pred& __comp, _Proj1& __proj1, _Proj2& __proj2) {
-  while (__first1 != __last1 && __first2 != __last2) {
-    if (!std::__invoke(__comp, std::__invoke(__proj1, *__first1), std::__invoke(__proj2, *__first2)))
-      return false;
-    ++__first1;
-    ++__first2;
-  }
-  return __first1 == __last1 && __first2 == __last2;
-}
-
-template <class _Tp,
-          class _Up,
-          class _Pred,
-          class _Proj1,
-          class _Proj2,
-          __enable_if_t<__desugars_to_v<__equal_tag, _Pred, _Tp, _Up> && __is_identity<_Proj1>::value &&
-                            __is_identity<_Proj2>::value && !is_volatile<_Tp>::value && !is_volatile<_Up>::value &&
-                            __libcpp_is_trivially_equality_comparable<_Tp, _Up>::value,
-                        int> = 0>
-_LIBCPP_NODISCARD inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 bool
-__equal_impl(_Tp* __first1, _Tp* __last1, _Up* __first2, _Up*, _Pred&, _Proj1&, _Proj2&) {
-  return std::__constexpr_memcmp_equal(__first1, __first2, __element_count(__last1 - __first1));
-}
-
-template <class _InputIterator1, class _InputIterator2, class _BinaryPredicate>
-_LIBCPP_NODISCARD inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 bool
-equal(_InputIterator1 __first1,
-      _InputIterator1 __last1,
-      _InputIterator2 __first2,
-      _InputIterator2 __last2,
-      _BinaryPredicate __pred) {
-  if constexpr (__has_random_access_iterator_category<_InputIterator1>::value &&
-                __has_random_access_iterator_category<_InputIterator2>::value) {
-    if (std::distance(__first1, __last1) != std::distance(__first2, __last2))
-      return false;
-  }
-  __identity __proj;
-  return std::__equal_impl(
-      std::__unwrap_iter(__first1),
-      std::__unwrap_iter(__last1),
-      std::__unwrap_iter(__first2),
-      std::__unwrap_iter(__last2),
-      __pred,
-      __proj,
-      __proj);
-}
-
-template <class _InputIterator1, class _InputIterator2>
-_LIBCPP_NODISCARD inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 bool
-equal(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2) {
-  return std::equal(__first1, __last1, __first2, __last2, __equal_to());
-}
-
-#endif // _LIBCPP_STD_VER >= 14
-
 _LIBCPP_END_NAMESPACE_STD
 
 _LIBCPP_POP_MACROS
diff --git a/libcxx/include/__cxx03/__algorithm/for_each.h b/libcxx/include/__cxx03/__algorithm/for_each.h
index b1b16d46127cb..f79eb434465cf 100644
--- a/libcxx/include/__cxx03/__algorithm/for_each.h
+++ b/libcxx/include/__cxx03/__algorithm/for_each.h
@@ -33,21 +33,6 @@ for_each(_InputIterator __first, _InputIterator __last, _Function __f) {
   return __f;
 }
 
-// __movable_box is available in C++20, but is actually a copyable-box, so optimization is only correct in C++23
-#if _LIBCPP_STD_VER >= 23
-template <class _SegmentedIterator, class _Function>
-  requires __is_segmented_iterator<_SegmentedIterator>::value
-_LIBCPP_HIDE_FROM_ABI constexpr _Function
-for_each(_SegmentedIterator __first, _SegmentedIterator __last, _Function __func) {
-  ranges::__movable_box<_Function> __wrapped_func(in_place, std::move(__func));
-  std::__for_each_segment(__first, __last, [&](auto __lfirst, auto __llast) {
-    __wrapped_func =
-        ranges::__movable_box<_Function>(in_place, std::for_each(__lfirst, __llast, std::move(*__wrapped_func)));
-  });
-  return std::move(*__wrapped_func);
-}
-#endif // _LIBCPP_STD_VER >= 23
-
 _LIBCPP_END_NAMESPACE_STD
 
 _LIBCPP_POP_MACROS
diff --git a/libcxx/include/__cxx03/__algorithm/is_permutation.h b/libcxx/include/__cxx03/__algorithm/is_permutation.h
index 558077f8ab81f..3089acf119845 100644
--- a/libcxx/include/__cxx03/__algorithm/is_permutation.h
+++ b/libcxx/include/__cxx03/__algorithm/is_permutation.h
@@ -33,18 +33,6 @@ _LIBCPP_BEGIN_NAMESPACE_STD
 template <class _Iter1, class _Sent1, class _Iter2, class _Sent2, class = void>
 struct _ConstTimeDistance : false_type {};
 
-#if _LIBCPP_STD_VER >= 20
-
-template <class _Iter1, class _Sent1, class _Iter2, class _Sent2>
-struct _ConstTimeDistance<_Iter1,
-                          _Sent1,
-                          _Iter2,
-                          _Sent2,
-                          __enable_if_t< sized_sentinel_for<_Sent1, _Iter1> && sized_sentinel_for<_Sent2, _Iter2> >>
-    : true_type {};
-
-#else
-
 template <class _Iter1, class _Iter2>
 struct _ConstTimeDistance<
     _Iter1,
@@ -55,8 +43,6 @@ struct _ConstTimeDistance<
                    is_same<typename iterator_traits<_Iter2>::iterator_category, random_access_iterator_tag>::value > >
     : true_type {};
 
-#endif // _LIBCPP_STD_VER >= 20
-
 // Internal functions
 
 // For each element in [f1, l1) see if there are the same number of equal elements in [f2, l2)
@@ -261,45 +247,6 @@ is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIt
   return std::is_permutation(__first1, __last1, __first2, __equal_to());
 }
 
-#if _LIBCPP_STD_VER >= 14
-
-// 2+2 iterators
-template <class _ForwardIterator1, class _ForwardIterator2>
-_LIBCPP_NODISCARD inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 bool is_permutation(
-    _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2) {
-  return std::__is_permutation<_ClassicAlgPolicy>(
-      std::move(__first1),
-      std::move(__last1),
-      std::move(__first2),
-      std::move(__last2),
-      __equal_to(),
-      __identity(),
-      __identity());
-}
-
-// 2+2 iterators, predicate
-template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate>
-_LIBCPP_NODISCARD inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 bool is_permutation(
-    _ForwardIterator1 __first1,
-    _ForwardIterator1 __last1,
-    _ForwardIterator2 __first2,
-    _ForwardIterator2 __last2,
-    _BinaryPredicate __pred) {
-  static_assert(__is_callable<_BinaryPredicate, decltype(*__first1), decltype(*__first2)>::value,
-                "The predicate has to be callable");
-
-  return std::__is_permutation<_ClassicAlgPolicy>(
-      std::move(__first1),
-      std::move(__last1),
-      std::move(__first2),
-      std::move(__last2),
-      __pred,
-      __identity(),
-      __identity());
-}
-
-#endif // _LIBCPP_STD_VER >= 14
-
 _LIBCPP_END_NAMESPACE_STD
 
 _LIBCPP_POP_MACROS
diff --git a/libcxx/include/__cxx03/__algorithm/iterator_operations.h b/libcxx/include/__cxx03/__algorithm/iterator_operations.h
index 6ed7d537134ed..c594723e7d906 100644
--- a/libcxx/include/__cxx03/__algorithm/iterator_operations.h
+++ b/libcxx/include/__cxx03/__algorithm/iterator_operations.h
@@ -37,31 +37,6 @@ _LIBCPP_BEGIN_NAMESPACE_STD
 template <class _AlgPolicy>
 struct _IterOps;
 
-#if _LIBCPP_STD_VER >= 20
-struct _RangeAlgPolicy {};
-
-template <>
-struct _IterOps<_RangeAlgPolicy> {
-  template <class _Iter>
-  using __value_type = iter_value_t<_Iter>;
-
-  template <class _Iter>
-  using __iterator_category = ranges::__iterator_concept<_Iter>;
-
-  template <class _Iter>
-  using __difference_type = iter_difference_t<_Iter>;
-
-  static constexpr auto advance      = ranges::advance;
-  static constexpr auto distance     = ranges::distance;
-  static constexpr auto __iter_move  = ranges::iter_move;
-  static constexpr auto iter_swap    = ranges::iter_swap;
-  static constexpr auto next         = ranges::next;
-  static constexpr auto prev         = ranges::prev;
-  static constexpr auto __advance_to = ranges::advance;
-};
-
-#endif
-
 struct _ClassicAlgPolicy {};
 
 template <>
diff --git a/libcxx/include/__cxx03/__algorithm/make_projected.h b/libcxx/include/__cxx03/__algorithm/make_projected.h
index be36426d3b58e..68cda60d4e473 100644
--- a/libcxx/include/__cxx03/__algorithm/make_projected.h
+++ b/libcxx/include/__cxx03/__algorithm/make_projected.h
@@ -73,33 +73,4 @@ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR _Pred& __make_projected(_Pred& __pred, _
 
 _LIBCPP_END_NAMESPACE_STD
 
-#if _LIBCPP_STD_VER >= 20
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-namespace ranges {
-
-template <class _Comp, class _Proj1, class _Proj2>
-_LIBCPP_HIDE_FROM_ABI constexpr decltype(auto) __make_projected_comp(_Comp& __comp, _Proj1& __proj1, _Proj2& __proj2) {
-  if constexpr (__is_identity<decay_t<_Proj1>>::value && __is_identity<decay_t<_Proj2>>::value &&
-                !is_member_pointer_v<decay_t<_Comp>>) {
-    // Avoid creating the lambda and just use the pristine comparator -- for certain algorithms, this would enable
-    // optimizations that rely on the type of the comparator.
-    return __comp;
-
-  } else {
-    return [&](auto&& __lhs, auto&& __rhs) -> bool {
-      return std::invoke(__comp,
-                         std::invoke(__proj1, std::forward<decltype(__lhs)>(__lhs)),
-                         std::invoke(__proj2, std::forward<decltype(__rhs)>(__rhs)));
-    };
-  }
-}
-
-} // namespace ranges
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP_STD_VER >= 20
-
 #endif // _LIBCPP___CXX03___ALGORITHM_MAKE_PROJECTED_H
diff --git a/libcxx/include/__cxx03/__algorithm/max.h b/libcxx/include/__cxx03/__algorithm/max.h
index 7b13e78c2761a..50dfd03843bdd 100644
--- a/libcxx/include/__cxx03/__algorithm/max.h
+++ b/libcxx/include/__cxx03/__algorithm/max.h
@@ -35,21 +35,6 @@ max(_LIBCPP_LIFETIMEBOUND const _Tp& __a, _LIBCPP_LIFETIMEBOUND const _Tp& __b)
   return std::max(__a, __b, __less<>());
 }
 
-#ifndef _LIBCPP_CXX03_LANG
-
-template <class _Tp, class _Compare>
-_LIBCPP_NODISCARD inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 _Tp
-max(initializer_list<_Tp> __t, _Compare __comp) {
-  return *std::__max_element<__comp_ref_type<_Compare> >(__t.begin(), __t.end(), __comp);
-}
-
-template <class _Tp>
-_LIBCPP_NODISCARD inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 _Tp max(initializer_list<_Tp> __t) {
-  return *std::max_element(__t.begin(), __t.end(), __less<>());
-}
-
-#endif // _LIBCPP_CXX03_LANG
-
 _LIBCPP_END_NAMESPACE_STD
 
 _LIBCPP_POP_MACROS
diff --git a/libcxx/include/__cxx03/__algorithm/min.h b/libcxx/include/__cxx03/__algorithm/min.h
index 751c53a953828..b617f857102d4 100644
--- a/libcxx/include/__cxx03/__algorithm/min.h
+++ b/libcxx/include/__cxx03/__algorithm/min.h
@@ -35,21 +35,6 @@ min(_LIBCPP_LIFETIMEBOUND const _Tp& __a, _LIBCPP_LIFETIMEBOUND const _Tp& __b)
   return std::min(__a, __b, __less<>());
 }
 
-#ifndef _LIBCPP_CXX03_LANG
-
-template <class _Tp, class _Compare>
-_LIBCPP_NODISCARD inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 _Tp
-min(initializer_list<_Tp> __t, _Compare __comp) {
-  return *std::__min_element<__comp_ref_type<_Compare> >(__t.begin(), __t.end(), __comp);
-}
-
-template <class _Tp>
-_LIBCPP_NODISCARD inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 _Tp min(initializer_list<_Tp> __t) {
-  return *std::min_element(__t.begin(), __t.end(), __less<>());
-}
-
-#endif // _LIBCPP_CXX03_LANG
-
 _LIBCPP_END_NAMESPACE_STD
 
 _LIBCPP_POP_MACROS
diff --git a/libcxx/include/__cxx03/__algorithm/minmax.h b/libcxx/include/__cxx03/__algorithm/minmax.h
index 6569dafa3aafc..609bc623b913c 100644
--- a/libcxx/include/__cxx03/__algorithm/minmax.h
+++ b/libcxx/include/__cxx03/__algorithm/minmax.h
@@ -34,25 +34,6 @@ minmax(_LIBCPP_LIFETIMEBOUND const _Tp& __a, _LIBCPP_LIFETIMEBOUND const _Tp& __
   return std::minmax(__a, __b, __less<>());
 }
 
-#ifndef _LIBCPP_CXX03_LANG
-
-template <class _Tp, class _Compare>
-_LIBCPP_NODISCARD inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<_Tp, _Tp>
-minmax(initializer_list<_Tp> __t, _Compare __comp) {
-  static_assert(__is_callable<_Compare, _Tp, _Tp>::value, "The comparator has to be callable");
-  __identity __proj;
-  auto __ret = std::__minmax_element_impl(__t.begin(), __t.end(), __comp, __proj);
-  return pair<_Tp, _Tp>(*__ret.first, *__ret.second);
-}
-
-template <class _Tp>
-_LIBCPP_NODISCARD inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<_Tp, _Tp>
-minmax(initializer_list<_Tp> __t) {
-  return std::minmax(__t, __less<>());
-}
-
-#endif // _LIBCPP_CXX03_LANG
-
 _LIBCPP_END_NAMESPACE_STD
 
 #endif // _LIBCPP___CXX03___ALGORITHM_MINMAX_H
diff --git a/libcxx/include/__cxx03/__algorithm/mismatch.h b/libcxx/include/__cxx03/__algorithm/mismatch.h
index 163bc8fb165c0..baf464c25e86f 100644
--- a/libcxx/include/__cxx03/__algorithm/mismatch.h
+++ b/libcxx/include/__cxx03/__algorithm/mismatch.h
@@ -164,52 +164,6 @@ mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __fi
   return std::mismatch(__first1, __last1, __first2, __equal_to());
 }
 
-#if _LIBCPP_STD_VER >= 14
-template <class _Iter1, class _Sent1, class _Iter2, class _Sent2, class _Pred, class _Proj1, class _Proj2>
-_LIBCPP_NODISCARD _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 pair<_Iter1, _Iter2> __mismatch(
-    _Iter1 __first1, _Sent1 __last1, _Iter2 __first2, _Sent2 __last2, _Pred& __pred, _Proj1& __proj1, _Proj2& __proj2) {
-  while (__first1 != __last1 && __first2 != __last2) {
-    if (!std::__invoke(__pred, std::__invoke(__proj1, *__first1), std::__invoke(__proj2, *__first2)))
-      break;
-    ++__first1;
-    ++__first2;
-  }
-  return {std::move(__first1), std::move(__first2)};
-}
-
-template <class _Tp, class _Pred, class _Proj1, class _Proj2>
-_LIBCPP_NODISCARD _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 pair<_Tp*, _Tp*>
-__mismatch(_Tp* __first1, _Tp* __last1, _Tp* __first2, _Tp* __last2, _Pred& __pred, _Proj1& __proj1, _Proj2& __proj2) {
-  auto __len = std::min(__last1 - __first1, __last2 - __first2);
-  return std::__mismatch(__first1, __first1 + __len, __first2, __pred, __proj1, __proj2);
-}
-
-template <class _InputIterator1, class _InputIterator2, class _BinaryPredicate>
-_LIBCPP_NODISCARD inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 pair<_InputIterator1, _InputIterator2>
-mismatch(_InputIterator1 __first1,
-         _InputIterator1 __last1,
-         _InputIterator2 __first2,
-         _InputIterator2 __last2,
-         _BinaryPredicate __pred) {
-  __identity __proj;
-  auto __res = std::__mismatch(
-      std::__unwrap_iter(__first1),
-      std::__unwrap_iter(__last1),
-      std::__unwrap_iter(__first2),
-      std::__unwrap_iter(__last2),
-      __pred,
-      __proj,
-      __proj);
-  return {std::__rewrap_iter(__first1, __res.first), std::__rewrap_iter(__first2, __res.second)};
-}
-
-template <class _InputIterator1, class _InputIterator2>
-_LIBCPP_NODISCARD inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 pair<_InputIterator1, _InputIterator2>
-mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2) {
-  return std::mismatch(__first1, __last1, __first2, __last2, __equal_to());
-}
-#endif
-
 _LIBCPP_END_NAMESPACE_STD
 
 _LIBCPP_POP_MACROS
diff --git a/libcxx/include/__cxx03/__algorithm/search.h b/libcxx/include/__cxx03/__algorithm/search.h
index fd9aa0e4ffc77..f235510c33905 100644
--- a/libcxx/include/__cxx03/__algorithm/search.h
+++ b/libcxx/include/__cxx03/__algorithm/search.h
@@ -177,15 +177,6 @@ search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2
   return std::search(__first1, __last1, __first2, __last2, __equal_to());
 }
 
-#if _LIBCPP_STD_VER >= 17
-template <class _ForwardIterator, class _Searcher>
-[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 _ForwardIterator
-search(_ForwardIterator __f, _ForwardIterator __l, const _Searcher& __s) {
-  return __s(__f, __l).first;
-}
-
-#endif
-
 _LIBCPP_END_NAMESPACE_STD
 
 #endif // _LIBCPP___CXX03___ALGORITHM_SEARCH_H
diff --git a/libcxx/include/__cxx03/__algorithm/shuffle.h b/libcxx/include/__cxx03/__algorithm/shuffle.h
index abb96bce40236..173af1bf25290 100644
--- a/libcxx/include/__cxx03/__algorithm/shuffle.h
+++ b/libcxx/include/__cxx03/__algorithm/shuffle.h
@@ -62,7 +62,6 @@ class _LIBCPP_EXPORTED_FROM_ABI __libcpp_debug_randomizer {
   }
 };
 
-#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_RANDOM_SHUFFLE) || defined(_LIBCPP_BUILDING_LIBRARY)
 class _LIBCPP_EXPORTED_FROM_ABI __rs_default;
 
 _LIBCPP_EXPORTED_FROM_ABI __rs_default __rs_get();
@@ -111,14 +110,7 @@ random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last) {
 
 template <class _RandomAccessIterator, class _RandomNumberGenerator>
 _LIBCPP_HIDE_FROM_ABI _LIBCPP_DEPRECATED_IN_CXX14 void
-random_shuffle(_RandomAccessIterator __first,
-               _RandomAccessIterator __last,
-#  ifndef _LIBCPP_CXX03_LANG
-               _RandomNumberGenerator&& __rand)
-#  else
-               _RandomNumberGenerator& __rand)
-#  endif
-{
+random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, _RandomNumberGenerator&& __rand) {
   typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type;
   difference_type __d = __last - __first;
   if (__d > 1) {
@@ -129,7 +121,6 @@ random_shuffle(_RandomAccessIterator __first,
     }
   }
 }
-#endif
 
 template <class _AlgPolicy, class _RandomAccessIterator, class _Sentinel, class _UniformRandomNumberGenerator>
 _LIBCPP_HIDE_FROM_ABI _RandomAccessIterator
diff --git a/libcxx/include/__cxx03/__algorithm/simd_utils.h b/libcxx/include/__cxx03/__algorithm/simd_utils.h
index 1cd6ae2893672..7b0e825afaa1f 100644
--- a/libcxx/include/__cxx03/__algorithm/simd_utils.h
+++ b/libcxx/include/__cxx03/__algorithm/simd_utils.h
@@ -27,11 +27,7 @@ _LIBCPP_PUSH_MACROS
 #include <__cxx03/__undef_macros>
 
 // TODO: Find out how altivec changes things and allow vectorizations there too.
-#if _LIBCPP_STD_VER >= 14 && defined(_LIBCPP_CLANG_VER) && !defined(__ALTIVEC__)
-#  define _LIBCPP_HAS_ALGORITHM_VECTOR_UTILS 1
-#else
-#  define _LIBCPP_HAS_ALGORITHM_VECTOR_UTILS 0
-#endif
+#define _LIBCPP_HAS_ALGORITHM_VECTOR_UTILS 0
 
 #if _LIBCPP_HAS_ALGORITHM_VECTOR_UTILS && !defined(__OPTIMIZE_SIZE__)
 #  define _LIBCPP_VECTORIZE_ALGORITHMS 1
diff --git a/libcxx/include/__cxx03/__algorithm/sort.h b/libcxx/include/__cxx03/__algorithm/sort.h
index f0f1babe731ed..b89843f514673 100644
--- a/libcxx/include/__cxx03/__algorithm/sort.h
+++ b/libcxx/include/__cxx03/__algorithm/sort.h
@@ -135,12 +135,6 @@ template <class _Tp>
 struct __is_simple_comparator<less<_Tp>&> : true_type {};
 template <class _Tp>
 struct __is_simple_comparator<greater<_Tp>&> : true_type {};
-#if _LIBCPP_STD_VER >= 20
-template <>
-struct __is_simple_comparator<ranges::less&> : true_type {};
-template <>
-struct __is_simple_comparator<ranges::greater&> : true_type {};
-#endif
 
 template <class _Compare, class _Iter, class _Tp = typename iterator_traits<_Iter>::value_type>
 using __use_branchless_sort =
@@ -966,22 +960,6 @@ _LIBCPP_HIDE_FROM_ABI void __sort_dispatch(_Type* __first, _Type* __last, less<_
   std::__sort<__less<_Type>&, _Type*>(__first, __last, __comp);
 }
 
-#if _LIBCPP_STD_VER >= 14
-template <class _AlgPolicy, class _Type, __enable_if_t<__sort_is_specialized_in_library<_Type>::value, int> = 0>
-_LIBCPP_HIDE_FROM_ABI void __sort_dispatch(_Type* __first, _Type* __last, less<>&) {
-  __less<_Type> __comp;
-  std::__sort<__less<_Type>&, _Type*>(__first, __last, __comp);
-}
-#endif
-
-#if _LIBCPP_STD_VER >= 20
-template <class _AlgPolicy, class _Type, __enable_if_t<__sort_is_specialized_in_library<_Type>::value, int> = 0>
-_LIBCPP_HIDE_FROM_ABI void __sort_dispatch(_Type* __first, _Type* __last, ranges::less&) {
-  __less<_Type> __comp;
-  std::__sort<__less<_Type>&, _Type*>(__first, __last, __comp);
-}
-#endif
-
 template <class _AlgPolicy, class _RandomAccessIterator, class _Comp>
 inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void
 __sort_impl(_RandomAccessIterator __first, _RandomAccessIterator __last, _Comp& __comp) {
diff --git a/libcxx/include/__cxx03/__algorithm/three_way_comp_ref_type.h b/libcxx/includ...
[truncated]

Copy link

github-actions bot commented Apr 2, 2025

✅ With the latest revision this PR passed the C/C++ code formatter.

Copy link
Member

@ldionne ldionne left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, please update the commit message to explain what's being done and this is part of the frozen header RFC. Thanks!

@philnik777 philnik777 force-pushed the users/philnik777/cxx03_01_remove_headers branch from ef409c8 to 12f7902 Compare April 3, 2025 07:52
@philnik777 philnik777 force-pushed the users/philnik777/cxx03_02_remove_dead_version_code branch from f34c3f3 to 92d6777 Compare April 3, 2025 08:04
@philnik777 philnik777 force-pushed the users/philnik777/cxx03_01_remove_headers branch 3 times, most recently from 3c10c3b to 481dfce Compare April 9, 2025 07:14
Base automatically changed from users/philnik777/cxx03_01_remove_headers to main April 9, 2025 13:00
@philnik777 philnik777 force-pushed the users/philnik777/cxx03_02_remove_dead_version_code branch 3 times, most recently from d95f1ff to 3840d21 Compare April 12, 2025 08:49
@philnik777 philnik777 force-pushed the users/philnik777/cxx03_02_remove_dead_version_code branch from 3840d21 to b828d66 Compare May 3, 2025 06:42
@philnik777 philnik777 merged commit 3dc1f75 into main May 6, 2025
85 checks passed
@philnik777 philnik777 deleted the users/philnik777/cxx03_02_remove_dead_version_code branch May 6, 2025 07:53
GeorgeARM pushed a commit to GeorgeARM/llvm-project that referenced this pull request May 7, 2025
This patch removes code which is guarded by `_LIBCPP_STD_VER` and
`_LIBCPP_CXX03_LANG`.

This is part of
https://discourse.llvm.org/t/rfc-freezing-c-03-headers-in-libc.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants