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 Update copyright years. 2019-01-01 13:31:55 +01:00
atexit_arm.cc Update copyright years. 2019-01-01 13:31:55 +01:00
atexit_thread.cc Update copyright years. 2019-01-01 13:31:55 +01:00
atomic_lockfree_defines.h P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
bad_alloc.cc Update copyright years. 2019-01-01 13:31:55 +01:00
bad_array_length.cc Update copyright years. 2019-01-01 13:31:55 +01:00
bad_array_new.cc Update copyright years. 2019-01-01 13:31:55 +01:00
bad_cast.cc Update copyright years. 2019-01-01 13:31:55 +01:00
bad_typeid.cc Update copyright years. 2019-01-01 13:31:55 +01:00
class_type_info.cc Update copyright years. 2019-01-01 13:31:55 +01:00
compare libstdc++: Implement spaceship for std::pair (P1614R2) 2019-12-03 23:57:46 +00:00
cxxabi_forced.h Update copyright years. 2019-01-01 13:31:55 +01:00
cxxabi_init_exception.h Update copyright years. 2019-01-01 13:31:55 +01:00
cxxabi.h PR libstdc++/51333 Define recursive_init_error constructor non-inline 2019-07-29 15:27:19 +01:00
del_op.cc Update copyright years. 2019-01-01 13:31:55 +01:00
del_opa.cc Update copyright years. 2019-01-01 13:31:55 +01:00
del_opant.cc Update copyright years. 2019-01-01 13:31:55 +01:00
del_opnt.cc Update copyright years. 2019-01-01 13:31:55 +01:00
del_ops.cc Update copyright years. 2019-01-01 13:31:55 +01:00
del_opsa.cc Update copyright years. 2019-01-01 13:31:55 +01:00
del_opv.cc Update copyright years. 2019-01-01 13:31:55 +01:00
del_opva.cc Update copyright years. 2019-01-01 13:31:55 +01:00
del_opvant.cc Update copyright years. 2019-01-01 13:31:55 +01:00
del_opvnt.cc Update copyright years. 2019-01-01 13:31:55 +01:00
del_opvs.cc Update copyright years. 2019-01-01 13:31:55 +01:00
del_opvsa.cc Update copyright years. 2019-01-01 13:31:55 +01:00
dyncast.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_alloc.cc Fix after P0600. 2019-01-21 11:47:30 +00:00
eh_arm.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_atomics.h Update copyright years. 2019-01-01 13:31:55 +01:00
eh_aux_runtime.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_call.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_catch.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_exception.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_globals.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_personality.cc [ARM/FDPIC v6 06/24] [ARM] FDPIC: Add support for c++ exceptions 2019-09-10 09:47:49 +02:00
eh_ptr.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_term_handler.cc PR libstdc++/90682 allow set_terminate(0) and set_unexpected(0) 2019-05-31 11:35:11 +01:00
eh_term_handler.h PR libstdc++/90682 allow set_terminate(0) and set_unexpected(0) 2019-05-31 11:35:11 +01:00
eh_terminate.cc PR libstdc++/90682 allow set_terminate(0) and set_unexpected(0) 2019-05-31 11:35:11 +01:00
eh_throw.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_tm.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_type.cc Update copyright years. 2019-01-01 13:31:55 +01:00
eh_unex_handler.cc Update copyright years. 2019-01-01 13:31:55 +01:00
enum_type_info.cc Update copyright years. 2019-01-01 13:31:55 +01:00
exception Improve API docs for <system_error> header 2019-05-04 15:35:29 +01:00
exception_defines.h Update copyright years. 2019-01-01 13:31:55 +01:00
exception_ptr.h Improve API docs for <system_error> header 2019-05-04 15:35:29 +01:00
exception.h Update copyright years. 2019-01-01 13:31:55 +01:00
function_type_info.cc Update copyright years. 2019-01-01 13:31:55 +01:00
fundamental_type_info.cc Update copyright years. 2019-01-01 13:31:55 +01:00
guard_error.cc PR libstdc++/51333 Define recursive_init_error constructor non-inline 2019-07-29 15:27:19 +01:00
guard.cc Update copyright years. 2019-01-01 13:31:55 +01:00
hash_bytes.cc PR libstdc++/89629 fix _Hash_bytes for lengths > INT_MAX 2019-03-11 13:46:05 +00:00
hash_bytes.h Update copyright years. 2019-01-01 13:31:55 +01:00
initializer_list Miscellaneous API doc improvements 2019-05-02 16:46:50 +01:00
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 Update copyright years. 2019-01-01 13:31:55 +01:00
nested_exception.h Improve API docs for <system_error> header 2019-05-04 15:35:29 +01:00
new Improve API docs for <memory> and <new> 2019-05-10 22:41:11 +01:00
new_handler.cc Update copyright years. 2019-01-01 13:31:55 +01:00
new_op.cc Update copyright years. 2019-01-01 13:31:55 +01:00
new_opa.cc PR libstdc++/92143 adjust for OS X aligned_alloc behaviour 2019-10-18 12:27:31 +01:00
new_opant.cc Update copyright years. 2019-01-01 13:31:55 +01:00
new_opnt.cc Update copyright years. 2019-01-01 13:31:55 +01:00
new_opv.cc Update copyright years. 2019-01-01 13:31:55 +01:00
new_opva.cc Update copyright years. 2019-01-01 13:31:55 +01:00
new_opvant.cc Update copyright years. 2019-01-01 13:31:55 +01:00
new_opvnt.cc Update copyright years. 2019-01-01 13:31:55 +01:00
pbase_type_info.cc Update copyright years. 2019-01-01 13:31:55 +01:00
pmem_type_info.cc Update copyright years. 2019-01-01 13:31:55 +01:00
pointer_type_info.cc Update copyright years. 2019-01-01 13:31:55 +01:00
pure.cc Update copyright years. 2019-01-01 13:31:55 +01:00
si_class_type_info.cc Update copyright years. 2019-01-01 13:31:55 +01:00
tinfo2.cc Update copyright years. 2019-01-01 13:31:55 +01:00
tinfo.cc Update copyright years. 2019-01-01 13:31:55 +01:00
tinfo.h Update copyright years. 2019-01-01 13:31:55 +01:00
typeinfo Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-cxx.h Update copyright years. 2019-01-01 13:31:55 +01:00
vec.cc Update copyright years. 2019-01-01 13:31:55 +01:00
vmi_class_type_info.cc Update copyright years. 2019-01-01 13:31:55 +01:00
vterminate.cc Update copyright years. 2019-01-01 13:31:55 +01:00
vtv_stubs.cc Update copyright years. 2019-01-01 13:31:55 +01:00