libstdc++: Add std::is_layout_compatible trait for C++20
authorJonathan Wakely <jwakely@redhat.com>
Tue, 24 Aug 2021 13:42:37 +0000 (14:42 +0100)
committerJonathan Wakely <jwakely@redhat.com>
Tue, 24 Aug 2021 15:12:44 +0000 (16:12 +0100)
commit037ef219b27c26d4c125368e685a89da7f8cc701
treea1c12e03ad596ea1384bcd6c4cb9f5a4caf99ea8
parent8ce18a29ef717f5920ebf5dc1d9e84570a1827d4
libstdc++: Add std::is_layout_compatible trait for C++20

Signed-off-by: Jonathan Wakely <jwakely@redhat.com>
libstdc++-v3/ChangeLog:

* include/std/type_traits (is_layout_compatible): Define.
(is_corresponding_member): Define.
* include/std/version (__cpp_lib_is_layout_compatible): Define.
* testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
New test.
* testsuite/20_util/is_layout_compatible/value.cc: New test.
* testsuite/20_util/is_layout_compatible/version.cc: New test.
* testsuite/20_util/is_pointer_interconvertible/with_class.cc:
New test.
* testsuite/23_containers/span/layout_compat.cc: Do not use real
std::is_layout_compatible trait if available.
libstdc++-v3/include/std/type_traits
libstdc++-v3/include/std/version
libstdc++-v3/testsuite/20_util/is_layout_compatible/is_corresponding_member.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/is_layout_compatible/value.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/is_layout_compatible/version.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/with_class.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/span/layout_compat.cc