basic_string_view& operator=(const basic_string_view&) _NOEXCEPT = default;
_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY
- basic_string_view(const _CharT* __s, size_type __len)
+ basic_string_view(const _CharT* __s, size_type __len) _NOEXCEPT
: __data(__s), __size(__len)
{
// #if _LIBCPP_STD_VER > 11
void test () {
#if TEST_STD_VER > 11
{
+ ASSERT_NOEXCEPT(T());
+
constexpr T sv1;
static_assert ( sv1.size() == 0, "" );
static_assert ( sv1.empty(), "");
template<typename CharT>
void test ( const CharT *s ) {
- std::basic_string_view<CharT> sv1 ( s );
+ typedef std::basic_string_view<CharT> SV;
+// I'd love to do this, but it would require traits::length() to be noexcept
+// LIBCPP_ASSERT_NOEXCEPT(SV(s));
+
+ SV sv1 ( s );
assert ( sv1.size() == StrLen( s ));
assert ( sv1.data() == s );
}
template<typename CharT>
void test ( const CharT *s, size_t sz ) {
{
- std::basic_string_view<CharT> sv1 ( s, sz );
+ typedef std::basic_string_view<CharT> SV;
+ LIBCPP_ASSERT_NOEXCEPT(SV(s, sz));
+
+ SV sv1 ( s, sz );
assert ( sv1.size() == sz );
assert ( sv1.data() == s );
}
template<typename CharT, typename Traits>
void test ( const std::basic_string<CharT, Traits> &str ) {
- std::basic_string_view<CharT, Traits> sv1 ( str );
+ typedef std::basic_string_view<CharT, Traits> SV;
+ ASSERT_NOEXCEPT(SV(str));
+
+ SV sv1 ( str );
assert ( sv1.size() == str.size());
assert ( sv1.data() == str.data());
}