diff --git a/libstdc++-v3/include/bits/basic_string.h b/libstdc++-v3/include/bits/basic_string.h index 17b973c8b45c5c56884649c4070af4380b2f4ca7..8369c24d3ae3eed4bce189fc45e310ecb4e1ff9a 100644 --- a/libstdc++-v3/include/bits/basic_string.h +++ b/libstdc++-v3/include/bits/basic_string.h @@ -88,6 +88,9 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11 class basic_string { #if __cplusplus >= 202002L + static_assert(is_trivially_copyable_v<_CharT> + && is_trivially_default_constructible_v<_CharT> + && is_standard_layout_v<_CharT>); static_assert(is_same_v<_CharT, typename _Traits::char_type>); static_assert(is_same_v<_CharT, typename _Alloc::value_type>); using _Char_alloc_type = _Alloc; diff --git a/libstdc++-v3/include/std/string_view b/libstdc++-v3/include/std/string_view index 96350f96b3c0deb667ac5bc6e38ba6baf861b03c..493edec26dc8180554ffd5dcce5457b30d9facf3 100644 --- a/libstdc++-v3/include/std/string_view +++ b/libstdc++-v3/include/std/string_view @@ -108,7 +108,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION class basic_string_view { static_assert(!is_array_v<_CharT>); - static_assert(is_trivial_v<_CharT> && is_standard_layout_v<_CharT>); + static_assert(is_trivially_copyable_v<_CharT> + && is_trivially_default_constructible_v<_CharT> + && is_standard_layout_v<_CharT>); static_assert(is_same_v<_CharT, typename _Traits::char_type>); public: