gcc/libstdc++-v3/libsupc++
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
..
array_type_info.cc
atexit_arm.cc
atexit_thread.cc
atomic_lockfree_defines.h
bad_alloc.cc
bad_array_length.cc
bad_array_new.cc
bad_cast.cc
bad_typeid.cc
class_type_info.cc
compare libstdc++: Implement spaceship for std::pair (P1614R2) 2019-12-03 23:57:46 +00:00
cxxabi_forced.h
cxxabi_init_exception.h
cxxabi.h
del_op.cc
del_opa.cc
del_opant.cc
del_opnt.cc
del_ops.cc
del_opsa.cc
del_opv.cc
del_opva.cc
del_opvant.cc
del_opvnt.cc
del_opvs.cc
del_opvsa.cc
dyncast.cc
eh_alloc.cc
eh_arm.cc
eh_atomics.h
eh_aux_runtime.cc
eh_call.cc
eh_catch.cc
eh_exception.cc
eh_globals.cc
eh_personality.cc
eh_ptr.cc
eh_term_handler.cc
eh_term_handler.h
eh_terminate.cc
eh_throw.cc
eh_tm.cc
eh_type.cc
eh_unex_handler.cc
enum_type_info.cc
exception
exception_defines.h
exception_ptr.h
exception.h
function_type_info.cc
fundamental_type_info.cc
guard_error.cc
guard.cc
hash_bytes.cc
hash_bytes.h
initializer_list
Makefile.am Implement C++20 operator<=>. 2019-11-05 18:56:18 -05:00
Makefile.in libstdc++: Add compare_three_way and install <compare> header 2019-11-06 17:53:38 +00:00
nested_exception.cc
nested_exception.h
new
new_handler.cc
new_op.cc
new_opa.cc PR libstdc++/92143 adjust for OS X aligned_alloc behaviour 2019-10-18 12:27:31 +01:00
new_opant.cc
new_opnt.cc
new_opv.cc
new_opva.cc
new_opvant.cc
new_opvnt.cc
pbase_type_info.cc
pmem_type_info.cc
pointer_type_info.cc
pure.cc
si_class_type_info.cc
tinfo2.cc
tinfo.cc
tinfo.h
typeinfo
unwind-cxx.h
vec.cc
vmi_class_type_info.cc
vterminate.cc
vtv_stubs.cc