gcc/libstdc++-v3/testsuite/20_util
Jonathan Wakely 7f397e4519 libstdc++: Implement spaceship for std::pair (P1614R2)
This defines operator<=> as a non-member function template and does not
alter operator==. This contradicts the changes made by P1614R2, which
specify both as hidden friends, but that specification of operator<=> is
broken and the subject of a soon-to-be-published LWG issue.

	* include/bits/stl_pair.h [__cpp_lib_three_way_comparison]
	(operator<=>): Define for C++20.
	* libsupc++/compare (__cmp2way_res_t): Rename to __cmp3way_res_t,
	move into __detail namespace. Do not turn argument types into lvalues.
	(__cmp3way_helper): Rename to __cmp3way_res_impl, move into __detail
	namespace. Constrain with concepts instead of using void_t.
	(compare_three_way_result): Adjust name of base class.
	(compare_three_way_result_t): Use __cmp3way_res_impl directly.
	(__detail::__3way_cmp_with): Add workaround for PR 91073.
	(compare_three_way): Use workaround.
	(__detail::__synth3way, __detail::__synth3way_t): Define new helpers
	implementing synth-three-way and synth-three-way-result semantics.
	* testsuite/20_util/pair/comparison_operators/constexpr_c++20.cc: New
	test.

From-SVN: r278951
2019-12-03 23:57:46 +00:00
..
add_const
add_cv
add_lvalue_reference
add_pointer Improve tests for std::add_pointer 2019-10-31 14:07:11 +00:00
add_rvalue_reference
add_volatile
addressof
align
aligned_storage
aligned_union
alignment_of
allocator Fix compilation with Clang 2019-10-25 18:02:35 +01:00
allocator_traits Fix some missing/incorrect feature test macros 2019-10-30 16:57:13 +00:00
any
as_const
assume_aligned
auto_ptr
bad_function_call
bind Add remaining changes from P1065R2 "constexpr INVOKE" 2019-10-31 23:03:22 +00:00
bool_constant
common_reference/requirements Implement std::common_reference for C++20 2019-09-10 17:28:27 +01:00
common_type/requirements
conditional/requirements
decay/requirements
declval/requirements
default_delete
duration
duration_cast
enable_if/requirements
enable_shared_from_this
exchange Implement C++20 p1424 - 'constexpr' feature macro concerns... 2019-09-10 03:38:58 +00:00
extent
forward Add iterator concepts and range access customization points for C++20 2019-10-29 17:44:18 +00:00
from_chars
function PR libstdc++/91456 make INVOKE<R> work with uncopyable prvalues 2019-08-15 17:07:27 +01:00
function_objects Forgot to change teh date range. 2019-11-15 21:27:49 +00:00
has_unique_object_representations
has_virtual_destructor
hash Disable tests that aren't valid in parallel mode 2019-10-01 22:02:17 +01:00
headers PR c++/91369 Implement P0784R7 changes to allocation and construction 2019-10-23 18:42:11 +01:00
in_place
integer_sequence
integral_constant
is_abstract
is_aggregate
is_arithmetic
is_array
is_assignable
is_base_of
is_bounded_array
is_class
is_complete_or_unbounded
is_compound
is_const
is_constant_evaluated
is_constructible
is_convertible
is_copy_assignable
is_copy_constructible
is_default_constructible
is_destructible
is_empty
is_enum
is_final
is_floating_point
is_function PR libstdc++/91371 make std::is_function handle other calling conventions 2019-08-20 22:21:15 +01:00
is_fundamental
is_implicitly_default_constructible
is_integral
is_invocable PR libstdc++/91456 make INVOKE<R> work with uncopyable prvalues 2019-08-15 17:07:27 +01:00
is_literal_type
is_lvalue_reference
is_member_function_pointer PR libstdc++/91371 make std::is_function handle other calling conventions 2019-08-20 22:21:15 +01:00
is_member_object_pointer
is_member_pointer
is_move_assignable
is_move_constructible
is_nothrow_assignable
is_nothrow_constructible
is_nothrow_convertible
is_nothrow_copy_assignable
is_nothrow_copy_constructible
is_nothrow_default_constructible
is_nothrow_destructible
is_nothrow_invocable
is_nothrow_move_assignable
is_nothrow_move_constructible
is_nothrow_swappable
is_nothrow_swappable_with
is_null_pointer
is_object PR libstdc++/91371 make std::is_function handle other calling conventions 2019-08-20 22:21:15 +01:00
is_pod
is_pointer
is_polymorphic
is_reference
is_rvalue_reference
is_same
is_scalar
is_signed
is_standard_layout
is_swappable
is_swappable_with
is_trivial
is_trivially_assignable
is_trivially_constructible
is_trivially_copy_assignable
is_trivially_copy_constructible
is_trivially_copyable
is_trivially_default_constructible
is_trivially_destructible
is_trivially_move_assignable
is_trivially_move_constructible
is_unbounded_array
is_union
is_unsigned
is_void
is_volatile
logical_traits
make_signed/requirements
make_unsigned/requirements
memory_resource
monotonic_buffer_resource
move
move_if_noexcept
nonesuch
optional
owner_less
pair libstdc++: Implement spaceship for std::pair (P1614R2) 2019-12-03 23:57:46 +00:00
pointer_safety
pointer_traits
polymorphic_allocator
rank
ratio
raw_storage_iterator
reference_wrapper Add remaining changes from P1065R2 "constexpr INVOKE" 2019-10-31 23:03:22 +00:00
remove_all_extents
remove_const
remove_cv
remove_cvref
remove_extent
remove_pointer
remove_reference
remove_volatile
result_of Fix libstdc++ tests for -Wvolatile warnings in C++2a mode 2019-09-11 12:38:15 +01:00
scoped_allocator PR c++/91369 Implement P0784R7 changes to allocation and construction 2019-10-23 18:42:11 +01:00
shared_ptr
specialized_algorithms PR c++/91369 Implement P0784R7 changes to allocation and construction 2019-10-23 18:42:11 +01:00
steady_clock
synchronized_pool_resource
system_clock
time_point
time_point_cast
to_address
to_chars LWG 3266. to_chars(bool) should be deleted 2019-09-10 10:08:20 +01:00
tuple Implement the <tuple> part of C++20 p1032 Misc constexpr bits. 2019-11-16 03:16:35 +00:00
type_identity/requirements
typeindex
underlying_type/requirements
unique_ptr
unsynchronized_pool_resource
unwrap_reference
uses_allocator Implement the <tuple> part of C++20 p1032 Misc constexpr bits. 2019-11-16 03:16:35 +00:00
variant
void_t
weak_ptr
rel_ops.cc
temporary_buffer.cc
variable_templates_for_traits.cc