diff --git a/libcxx/test/std/strings/string.view/char.bad.fail.cpp b/libcxx/test/std/strings/string.view/char.bad.fail.cpp --- a/libcxx/test/std/strings/string.view/char.bad.fail.cpp +++ b/libcxx/test/std/strings/string.view/char.bad.fail.cpp @@ -9,6 +9,8 @@ // // ... manipulating sequences of any non-array trivial standard-layout types. +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include "../basic.string/test_traits.h" diff --git a/libcxx/test/std/strings/string.view/string.view.hash/char_type.hash.fail.cpp b/libcxx/test/std/strings/string.view/string.view.hash/char_type.hash.fail.cpp --- a/libcxx/test/std/strings/string.view/string.view.hash/char_type.hash.fail.cpp +++ b/libcxx/test/std/strings/string.view/string.view.hash/char_type.hash.fail.cpp @@ -7,6 +7,7 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: c++03 +// UNSUPPORTED: !stdlib=libc++ && (c++11 || c++14) // diff --git a/libcxx/test/std/strings/string.view/string.view.hash/enabled_hashes.pass.cpp b/libcxx/test/std/strings/string.view/string.view.hash/enabled_hashes.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.hash/enabled_hashes.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.hash/enabled_hashes.pass.cpp @@ -7,6 +7,7 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: c++03 +// UNSUPPORTED: !stdlib=libc++ && (c++11 || c++14) // diff --git a/libcxx/test/std/strings/string.view/string.view.hash/string_view.pass.cpp b/libcxx/test/std/strings/string.view/string.view.hash/string_view.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.hash/string_view.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.hash/string_view.pass.cpp @@ -15,6 +15,8 @@ // size_t operator()(T val) const; // }; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + // Not very portable #include diff --git a/libcxx/test/std/strings/string.view/string.view.access/back.pass.cpp b/libcxx/test/std/strings/string.view/string.view.access/back.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.access/back.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.access/back.pass.cpp @@ -10,6 +10,8 @@ // constexpr const _CharT& front(); +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.access/data.pass.cpp b/libcxx/test/std/strings/string.view/string.view.access/data.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.access/data.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.access/data.pass.cpp @@ -10,6 +10,8 @@ // constexpr const _CharT* data() const noexcept; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.access/front.pass.cpp b/libcxx/test/std/strings/string.view/string.view.access/front.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.access/front.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.access/front.pass.cpp @@ -10,6 +10,8 @@ // constexpr const _CharT& back(); +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.access/index.pass.cpp b/libcxx/test/std/strings/string.view/string.view.access/index.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.access/index.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.access/index.pass.cpp @@ -10,6 +10,8 @@ // constexpr const _CharT& operator[](size_type _pos) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.capacity/capacity.pass.cpp b/libcxx/test/std/strings/string.view/string.view.capacity/capacity.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.capacity/capacity.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.capacity/capacity.pass.cpp @@ -14,6 +14,8 @@ // constexpr size_type max_size() const noexcept; // constexpr bool empty() const noexcept; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.comparison/equal.pass.cpp b/libcxx/test/std/strings/string.view/string.view.comparison/equal.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.comparison/equal.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.comparison/equal.pass.cpp @@ -12,6 +12,8 @@ // constexpr bool operator==(basic_string_view lhs, basic_string_view rhs); // (plus "sufficient additional overloads" to make implicit conversions work as intended) +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.comparison/greater.pass.cpp b/libcxx/test/std/strings/string.view/string.view.comparison/greater.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.comparison/greater.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.comparison/greater.pass.cpp @@ -12,6 +12,8 @@ // constexpr bool operator>(basic_string_view lhs, basic_string_view rhs); // (plus "sufficient additional overloads" to make implicit conversions work as intended) +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.comparison/greater_equal.pass.cpp b/libcxx/test/std/strings/string.view/string.view.comparison/greater_equal.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.comparison/greater_equal.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.comparison/greater_equal.pass.cpp @@ -12,6 +12,8 @@ // constexpr bool operator>=(basic_string_view lhs, basic_string_view rhs); // (plus "sufficient additional overloads" to make implicit conversions work as intended) +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.comparison/less.pass.cpp b/libcxx/test/std/strings/string.view/string.view.comparison/less.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.comparison/less.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.comparison/less.pass.cpp @@ -12,6 +12,8 @@ // constexpr bool operator<(basic_string_view lhs, basic_string_view rhs); // (plus "sufficient additional overloads" to make implicit conversions work as intended) +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.comparison/less_equal.pass.cpp b/libcxx/test/std/strings/string.view/string.view.comparison/less_equal.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.comparison/less_equal.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.comparison/less_equal.pass.cpp @@ -12,6 +12,8 @@ // constexpr bool operator<=(basic_string_view lhs, basic_string_view rhs); // (plus "sufficient additional overloads" to make implicit conversions work as intended) +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.comparison/not_equal.pass.cpp b/libcxx/test/std/strings/string.view/string.view.comparison/not_equal.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.comparison/not_equal.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.comparison/not_equal.pass.cpp @@ -12,6 +12,8 @@ // constexpr bool operator!=(basic_string_view lhs, basic_string_view rhs); // (plus "sufficient additional overloads" to make implicit conversions work as intended) +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.cons/assign.pass.cpp b/libcxx/test/std/strings/string.view/string.view.cons/assign.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.cons/assign.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.cons/assign.pass.cpp @@ -10,6 +10,8 @@ // constexpr basic_string_view& operator=(const basic_string_view &) noexcept = default; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.cons/default.pass.cpp b/libcxx/test/std/strings/string.view/string.view.cons/default.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.cons/default.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.cons/default.pass.cpp @@ -10,6 +10,8 @@ // constexpr basic_string_view () noexcept; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.cons/from_iterator_sentinel.pass.cpp b/libcxx/test/std/strings/string.view/string.view.cons/from_iterator_sentinel.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.cons/from_iterator_sentinel.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.cons/from_iterator_sentinel.pass.cpp @@ -12,6 +12,8 @@ // template // constexpr basic_string_view(It begin, End end) +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.cons/from_literal.pass.cpp b/libcxx/test/std/strings/string.view/string.view.cons/from_literal.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.cons/from_literal.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.cons/from_literal.pass.cpp @@ -11,6 +11,8 @@ // constexpr basic_string_view(const _CharT* _s) // : __data (_s), __size(_Traits::length(_s)) {} +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.cons/from_ptr_len.pass.cpp b/libcxx/test/std/strings/string.view/string.view.cons/from_ptr_len.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.cons/from_ptr_len.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.cons/from_ptr_len.pass.cpp @@ -11,6 +11,7 @@ // constexpr basic_string_view(const _CharT* _s, size_type _len) // : __data (_s), __size(_len) {} +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.cons/from_range.pass.cpp b/libcxx/test/std/strings/string.view/string.view.cons/from_range.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.cons/from_range.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.cons/from_range.pass.cpp @@ -13,6 +13,8 @@ // template // constexpr basic_string_view(Range&& range); +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.cons/from_string.pass.cpp b/libcxx/test/std/strings/string.view/string.view.cons/from_string.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.cons/from_string.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.cons/from_string.pass.cpp @@ -11,6 +11,7 @@ // template // basic_string_view(const basic_string<_CharT, _Traits, Allocator>& _str) noexcept +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.cons/from_string1.compile.fail.cpp b/libcxx/test/std/strings/string.view/string.view.cons/from_string1.compile.fail.cpp --- a/libcxx/test/std/strings/string.view/string.view.cons/from_string1.compile.fail.cpp +++ b/libcxx/test/std/strings/string.view/string.view.cons/from_string1.compile.fail.cpp @@ -11,6 +11,8 @@ // template // basic_string_view(const basic_string<_CharT, _Traits, Allocator>& _str) noexcept +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.cons/from_string2.compile.fail.cpp b/libcxx/test/std/strings/string.view/string.view.cons/from_string2.compile.fail.cpp --- a/libcxx/test/std/strings/string.view/string.view.cons/from_string2.compile.fail.cpp +++ b/libcxx/test/std/strings/string.view/string.view.cons/from_string2.compile.fail.cpp @@ -11,6 +11,8 @@ // template // basic_string_view(const basic_string<_CharT, _Traits, Allocator>& _str) noexcept +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_char_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_char_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.find/find_char_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.find/find_char_size.pass.cpp @@ -10,6 +10,8 @@ // constexpr size_type find(charT c, size_type pos = 0) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_char_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_char_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_char_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_char_size.pass.cpp @@ -10,6 +10,8 @@ // constexpr size_type find_first_not_of(charT c, size_type pos = 0) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size_size.pass.cpp @@ -10,6 +10,8 @@ // constexpr size_type find_first_not_of(const charT* s, size_type pos, size_type n) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_string_view_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_string_view_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_string_view_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_string_view_size.pass.cpp @@ -10,6 +10,8 @@ // size_type find_first_not_of(const basic_string& str, size_type pos = 0) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_first_of_char_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_first_of_char_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.find/find_first_of_char_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.find/find_first_of_char_size.pass.cpp @@ -10,6 +10,8 @@ // constexpr size_type find_first_of(charT c, size_type pos = 0) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_first_of_pointer_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_first_of_pointer_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.find/find_first_of_pointer_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.find/find_first_of_pointer_size.pass.cpp @@ -10,6 +10,8 @@ // constexpr size_type find_first_of(const charT* s, size_type pos = 0) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_first_of_pointer_size_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_first_of_pointer_size_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.find/find_first_of_pointer_size_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.find/find_first_of_pointer_size_size.pass.cpp @@ -10,6 +10,8 @@ // constexpr size_type find_first_of(const charT* s, size_type pos, size_type n) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_first_of_string_view_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_first_of_string_view_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.find/find_first_of_string_view_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.find/find_first_of_string_view_size.pass.cpp @@ -10,6 +10,8 @@ // size_type find_first_of(const basic_string_view& str, size_type pos = 0) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_char_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_char_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_char_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_char_size.pass.cpp @@ -10,6 +10,8 @@ // size_type find_last_not_of(charT c, size_type pos = npos) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size.pass.cpp @@ -10,6 +10,8 @@ // constexpr size_type find_last_not_of(const charT* s, size_type pos = npos) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size_size.pass.cpp @@ -10,6 +10,8 @@ // constexpr size_type find_last_not_of(const charT* s, size_type pos, size_type n) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_string_view_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_string_view_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_string_view_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_string_view_size.pass.cpp @@ -10,6 +10,8 @@ // size_type find_last_not_of(const basic_string& str, size_type pos = npos) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_last_of_char_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_last_of_char_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.find/find_last_of_char_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.find/find_last_of_char_size.pass.cpp @@ -10,6 +10,8 @@ // constexpr size_type find_last_of(charT c, size_type pos = npos) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_last_of_pointer_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_last_of_pointer_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.find/find_last_of_pointer_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.find/find_last_of_pointer_size.pass.cpp @@ -10,6 +10,8 @@ // constexpr size_type find_last_of(const charT* s, size_type pos = npos) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_last_of_pointer_size_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_last_of_pointer_size_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.find/find_last_of_pointer_size_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.find/find_last_of_pointer_size_size.pass.cpp @@ -10,6 +10,8 @@ // constexpr size_type find_last_of(const charT* s, size_type pos, size_type n) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_last_of_string_view_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_last_of_string_view_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.find/find_last_of_string_view_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.find/find_last_of_string_view_size.pass.cpp @@ -10,6 +10,8 @@ // size_type find_last_of(const basic_string& str, size_type pos = npos) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_pointer_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_pointer_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.find/find_pointer_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.find/find_pointer_size.pass.cpp @@ -10,6 +10,8 @@ // constexpr size_type find(const charT* s, size_type pos = 0) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_pointer_size_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_pointer_size_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.find/find_pointer_size_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.find/find_pointer_size_size.pass.cpp @@ -10,6 +10,8 @@ // constexpr size_type find(const charT* s, size_type pos, size_type n) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_string_view_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_string_view_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.find/find_string_view_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.find/find_string_view_size.pass.cpp @@ -10,6 +10,8 @@ // constexpr size_type find(const basic_string_view& str, size_type pos = 0) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.find/rfind_char_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/rfind_char_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.find/rfind_char_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.find/rfind_char_size.pass.cpp @@ -9,6 +9,8 @@ // // constexpr size_type rfind(charT c, size_type pos = npos) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.find/rfind_pointer_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/rfind_pointer_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.find/rfind_pointer_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.find/rfind_pointer_size.pass.cpp @@ -9,6 +9,8 @@ // // constexpr size_type rfind(const charT* s, size_type pos = npos) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.find/rfind_pointer_size_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/rfind_pointer_size_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.find/rfind_pointer_size_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.find/rfind_pointer_size_size.pass.cpp @@ -9,6 +9,8 @@ // // constexpr size_type rfind(const charT* s, size_type pos, size_type n) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.find/rfind_string_view_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/rfind_string_view_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.find/rfind_string_view_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.find/rfind_string_view_size.pass.cpp @@ -10,6 +10,8 @@ // constexpr size_type rfind(const basic_string& str, size_type pos = npos) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.io/stream_insert_decl_present.compile.pass.cpp b/libcxx/test/std/strings/string.view/string.view.io/stream_insert_decl_present.compile.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.io/stream_insert_decl_present.compile.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.io/stream_insert_decl_present.compile.pass.cpp @@ -13,6 +13,8 @@ // operator<<(basic_ostream& os, // const basic_string_view str); +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.iterators/begin.pass.cpp b/libcxx/test/std/strings/string.view/string.view.iterators/begin.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.iterators/begin.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.iterators/begin.pass.cpp @@ -10,6 +10,8 @@ // constexpr const_iterator begin() const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.iterators/end.pass.cpp b/libcxx/test/std/strings/string.view/string.view.iterators/end.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.iterators/end.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.iterators/end.pass.cpp @@ -10,6 +10,8 @@ // constexpr const_iterator end() const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.iterators/rbegin.pass.cpp b/libcxx/test/std/strings/string.view/string.view.iterators/rbegin.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.iterators/rbegin.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.iterators/rbegin.pass.cpp @@ -10,6 +10,8 @@ // const_iterator rbegin() const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.iterators/rend.pass.cpp b/libcxx/test/std/strings/string.view/string.view.iterators/rend.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.iterators/rend.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.iterators/rend.pass.cpp @@ -10,6 +10,8 @@ // constexpr const_iterator rend() const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.modifiers/remove_prefix.pass.cpp b/libcxx/test/std/strings/string.view/string.view.modifiers/remove_prefix.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.modifiers/remove_prefix.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.modifiers/remove_prefix.pass.cpp @@ -10,6 +10,8 @@ // void remove_prefix(size_type _n) +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.modifiers/remove_suffix.pass.cpp b/libcxx/test/std/strings/string.view/string.view.modifiers/remove_suffix.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.modifiers/remove_suffix.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.modifiers/remove_suffix.pass.cpp @@ -10,6 +10,8 @@ // void remove_suffix(size_type _n) +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.modifiers/swap.pass.cpp b/libcxx/test/std/strings/string.view/string.view.modifiers/swap.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.modifiers/swap.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.modifiers/swap.pass.cpp @@ -10,6 +10,8 @@ // void swap(basic_string_view& _other) noexcept +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.nonmem/quoted.pass.cpp b/libcxx/test/std/strings/string.view/string.view.nonmem/quoted.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.nonmem/quoted.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.nonmem/quoted.pass.cpp @@ -8,6 +8,7 @@ // UNSUPPORTED: c++03, c++11 // UNSUPPORTED: no-localization +// UNSUPPORTED: !stdlib=libc++ && c++14 // diff --git a/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer.pass.cpp @@ -10,6 +10,8 @@ // constexpr int compare(const charT* s) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp @@ -10,6 +10,8 @@ // constexpr int compare(size_type pos1, size_type n1, const charT* s) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp @@ -10,6 +10,8 @@ // constexpr int compare(size_type pos1, size_type n1, basic_string_view str) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp @@ -11,6 +11,8 @@ // constexpr int compare(size_type pos1, size_type n1, // const charT* s, size_type n2) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp @@ -11,6 +11,8 @@ // constexpr int compare(size_type pos1, size_type n1, basic_string_view str, // size_type pos2, size_type n2) const; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.ops/compare.sv.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/compare.sv.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.ops/compare.sv.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.ops/compare.sv.pass.cpp @@ -10,6 +10,8 @@ // constexpr int compare(basic_string_view str) const noexcept; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.ops/copy.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/copy.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.ops/copy.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.ops/copy.pass.cpp @@ -16,6 +16,7 @@ // Effects: Equivalent to std::copy_n(begin() + pos, rlen, s). // Returns: rlen. +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.ops/substr.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/substr.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.ops/substr.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.ops/substr.pass.cpp @@ -14,6 +14,8 @@ // Effects: Determines the effective length rlen of the string to reference as the smaller of n and size() - pos. // Returns: basic_string_view(data()+pos, rlen). +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include #include diff --git a/libcxx/test/std/strings/string.view/string.view.template/ends_with.ptr.pass.cpp b/libcxx/test/std/strings/string.view/string.view.template/ends_with.ptr.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.template/ends_with.ptr.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.template/ends_with.ptr.pass.cpp @@ -26,9 +26,9 @@ SV sv0 {}; SV sv1 { s + 4, 1 }; SV sv2 { s + 3, 2 }; -// SV sv3 { s + 2, 3 }; -// SV sv4 { s + 1, 4 }; -// SV sv5 { s , 5 }; + SV sv3 { s + 2, 3 }; + SV sv4 { s + 1, 4 }; + SV sv5 { s , 5 }; SV svNot {"def", 3 }; LIBCPP_ASSERT_NOEXCEPT(sv0.ends_with("")); diff --git a/libcxx/test/std/strings/string.view/string.view.template/starts_with.ptr.pass.cpp b/libcxx/test/std/strings/string.view/string.view.template/starts_with.ptr.pass.cpp --- a/libcxx/test/std/strings/string.view/string.view.template/starts_with.ptr.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.template/starts_with.ptr.pass.cpp @@ -26,9 +26,9 @@ SV sv0 {}; SV sv1 { s, 1 }; SV sv2 { s, 2 }; -// SV sv3 { s, 3 }; -// SV sv4 { s, 4 }; -// SV sv5 { s, 5 }; + SV sv3 { s, 3 }; + SV sv4 { s, 4 }; + SV sv5 { s, 5 }; SV svNot {"def", 3 }; LIBCPP_ASSERT_NOEXCEPT(sv0.starts_with("")); diff --git a/libcxx/test/std/strings/string.view/string_view.literals/literal.pass.cpp b/libcxx/test/std/strings/string.view/string_view.literals/literal.pass.cpp --- a/libcxx/test/std/strings/string.view/string_view.literals/literal.pass.cpp +++ b/libcxx/test/std/strings/string.view/string_view.literals/literal.pass.cpp @@ -6,9 +6,9 @@ // //===----------------------------------------------------------------------===// -// UNSUPPORTED: c++03, c++11 - // Note: libc++ supports string_view before C++17, but literals were introduced in C++14 +// UNSUPPORTED: c++03, c++11 +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) #include #include diff --git a/libcxx/test/std/strings/string.view/string_view.literals/literal.verify.cpp b/libcxx/test/std/strings/string.view/string_view.literals/literal.verify.cpp --- a/libcxx/test/std/strings/string.view/string_view.literals/literal.verify.cpp +++ b/libcxx/test/std/strings/string.view/string_view.literals/literal.verify.cpp @@ -6,7 +6,9 @@ // //===----------------------------------------------------------------------===// +// Note: libc++ supports string_view before C++17, but literals were introduced in C++14 // UNSUPPORTED: c++03, c++11 +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) #include diff --git a/libcxx/test/std/strings/string.view/traits_mismatch.compile.fail.cpp b/libcxx/test/std/strings/string.view/traits_mismatch.compile.fail.cpp --- a/libcxx/test/std/strings/string.view/traits_mismatch.compile.fail.cpp +++ b/libcxx/test/std/strings/string.view/traits_mismatch.compile.fail.cpp @@ -9,6 +9,8 @@ // // The string_views's value type must be the same as the traits's char_type +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include int main(int, char**) 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 --- a/libcxx/test/std/strings/string.view/trivially_copyable.compile.pass.cpp +++ b/libcxx/test/std/strings/string.view/trivially_copyable.compile.pass.cpp @@ -10,6 +10,8 @@ // +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include diff --git a/libcxx/test/std/strings/string.view/types.pass.cpp b/libcxx/test/std/strings/string.view/types.pass.cpp --- a/libcxx/test/std/strings/string.view/types.pass.cpp +++ b/libcxx/test/std/strings/string.view/types.pass.cpp @@ -30,6 +30,8 @@ // // }; +// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14) + #include #include #include