diff --git a/libcxx/docs/Status/Cxx2bPapers.csv b/libcxx/docs/Status/Cxx2bPapers.csv --- a/libcxx/docs/Status/Cxx2bPapers.csv +++ b/libcxx/docs/Status/Cxx2bPapers.csv @@ -31,7 +31,7 @@ "`P1272 `__","LWG","Byteswapping for fun&&nuf","October 2021","","" "`P1675 `__","LWG","``rethrow_exception`` must be allowed to copy","October 2021","","" "`P2077 `__","LWG","Heterogeneous erasure overloads for associative containers","October 2021","","" -"`P2251 `__","LWG","Require ``span`` & ``basic_string_view`` to be Trivially Copyable","October 2021","","" +"`P2251 `__","LWG","Require ``span`` & ``basic_string_view`` to be Trivially Copyable","October 2021","|Complete|","14.0" "`P2301 `__","LWG","Add a ``pmr`` alias for ``std::stacktrace``","October 2021","","" "`P2321 `__","LWG","``zip``","October 2021","","" "`P2340 `__","LWG","Clarifying the status of the 'C headers'","October 2021","","" diff --git a/libcxx/test/std/containers/views/trivially_copyable.compile.pass.cpp b/libcxx/test/std/containers/views/trivially_copyable.compile.pass.cpp new file mode 100644 --- /dev/null +++ b/libcxx/test/std/containers/views/trivially_copyable.compile.pass.cpp @@ -0,0 +1,18 @@ +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +// UNSUPPORTED: c++03, c++11, c++14, c++17 + +// P2251 was voted into C++23, but is supported even in C++20 mode by all vendors. + +// + +#include +#include + +static_assert(std::is_trivially_copyable_v>); +static_assert(std::is_trivially_copyable_v>); diff --git a/libcxx/test/std/strings/string.view/trivially_copyable.compile.pass.cpp b/libcxx/test/std/strings/string.view/trivially_copyable.compile.pass.cpp new file mode 100644 --- /dev/null +++ b/libcxx/test/std/strings/string.view/trivially_copyable.compile.pass.cpp @@ -0,0 +1,22 @@ +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +// P2251 was voted into C++23, but is supported even in C++17 mode by all vendors. + +// + +#include +#include + +static_assert(std::is_trivially_copyable >::value, ""); +static_assert(std::is_trivially_copyable >::value, ""); +#ifndef _LIBCPP_HAS_NO_CHAR8_T +static_assert(std::is_trivially_copyable >::value, ""); +#endif +static_assert(std::is_trivially_copyable >::value, ""); +static_assert(std::is_trivially_copyable >::value, "");