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,19 @@ +// +// 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 is supported by libc++ even in C++20 mode. +// UNSUPPORTED: !stdlib=libc++ && c++20 + +// + +#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,24 @@ +//===----------------------------------------------------------------------===// +// +// 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 libc++ guarantees triviality in all Standard modes, +// so we enable the test in all Standard modes for libc++. +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14 || c++17 || c++20) + +// + +#include +#include + +static_assert(std::is_trivially_copyable >::value, ""); +static_assert(std::is_trivially_copyable >::value, ""); +#if defined(__cpp_lib_char8_t) && __cpp_lib_char8_t >= 201811L +static_assert(std::is_trivially_copyable >::value, ""); +#endif +static_assert(std::is_trivially_copyable >::value, ""); +static_assert(std::is_trivially_copyable >::value, "");