[libc++][test] Skip string_view tests for other vendors on older modes
`string_view` is supported all the way back to C++03 as an extension in
`libc++`, and so many of the tests run in all standards modes for all vendors.
This is unlikely desired by other standard library vendors using our test suite.
So, disable the tests for vendors other than `libc++` in these older standards
modes.
Differential Revision: https://reviews.llvm.org/D126850
GitOrigin-RevId: 4fc502368ad002e5b8deff87288eb0627f3e6bec
diff --git a/test/std/strings/string.view/char.bad.fail.cpp b/test/std/strings/string.view/char.bad.fail.cpp
index 5224666..4953e13 100644
--- a/test/std/strings/string.view/char.bad.fail.cpp
+++ b/test/std/strings/string.view/char.bad.fail.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// ... manipulating sequences of any non-array trivial standard-layout types.
diff --git a/test/std/strings/string.view/string.view.access/back.pass.cpp b/test/std/strings/string.view/string.view.access/back.pass.cpp
index 535318c..d5a21bb 100644
--- a/test/std/strings/string.view/string.view.access/back.pass.cpp
+++ b/test/std/strings/string.view/string.view.access/back.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr const _CharT& front();
diff --git a/test/std/strings/string.view/string.view.access/data.pass.cpp b/test/std/strings/string.view/string.view.access/data.pass.cpp
index 4ba1450..715c8b7 100644
--- a/test/std/strings/string.view/string.view.access/data.pass.cpp
+++ b/test/std/strings/string.view/string.view.access/data.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr const _CharT* data() const noexcept;
diff --git a/test/std/strings/string.view/string.view.access/front.pass.cpp b/test/std/strings/string.view/string.view.access/front.pass.cpp
index c9b92ca..900a698 100644
--- a/test/std/strings/string.view/string.view.access/front.pass.cpp
+++ b/test/std/strings/string.view/string.view.access/front.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr const _CharT& back();
diff --git a/test/std/strings/string.view/string.view.access/index.pass.cpp b/test/std/strings/string.view/string.view.access/index.pass.cpp
index 93976df..493787a 100644
--- a/test/std/strings/string.view/string.view.access/index.pass.cpp
+++ b/test/std/strings/string.view/string.view.access/index.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr const _CharT& operator[](size_type _pos) const;
diff --git a/test/std/strings/string.view/string.view.capacity/capacity.pass.cpp b/test/std/strings/string.view/string.view.capacity/capacity.pass.cpp
index 0fdbe0e..ae6390c 100644
--- a/test/std/strings/string.view/string.view.capacity/capacity.pass.cpp
+++ b/test/std/strings/string.view/string.view.capacity/capacity.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// [string.view.capacity], capacity
diff --git a/test/std/strings/string.view/string.view.comparison/equal.pass.cpp b/test/std/strings/string.view/string.view.comparison/equal.pass.cpp
index 916e5ed..dbe242c 100644
--- a/test/std/strings/string.view/string.view.comparison/equal.pass.cpp
+++ b/test/std/strings/string.view/string.view.comparison/equal.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// template<class charT, class traits>
diff --git a/test/std/strings/string.view/string.view.comparison/greater.pass.cpp b/test/std/strings/string.view/string.view.comparison/greater.pass.cpp
index 4f56bc9..a3739f6 100644
--- a/test/std/strings/string.view/string.view.comparison/greater.pass.cpp
+++ b/test/std/strings/string.view/string.view.comparison/greater.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// template<class charT, class traits>
diff --git a/test/std/strings/string.view/string.view.comparison/greater_equal.pass.cpp b/test/std/strings/string.view/string.view.comparison/greater_equal.pass.cpp
index 147dc3a..55d2917 100644
--- a/test/std/strings/string.view/string.view.comparison/greater_equal.pass.cpp
+++ b/test/std/strings/string.view/string.view.comparison/greater_equal.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// template<class charT, class traits>
diff --git a/test/std/strings/string.view/string.view.comparison/less.pass.cpp b/test/std/strings/string.view/string.view.comparison/less.pass.cpp
index fe56920..874bf70 100644
--- a/test/std/strings/string.view/string.view.comparison/less.pass.cpp
+++ b/test/std/strings/string.view/string.view.comparison/less.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// template<class charT, class traits>
diff --git a/test/std/strings/string.view/string.view.comparison/less_equal.pass.cpp b/test/std/strings/string.view/string.view.comparison/less_equal.pass.cpp
index e03f4b4..4e3910c 100644
--- a/test/std/strings/string.view/string.view.comparison/less_equal.pass.cpp
+++ b/test/std/strings/string.view/string.view.comparison/less_equal.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// template<class charT, class traits>
diff --git a/test/std/strings/string.view/string.view.comparison/not_equal.pass.cpp b/test/std/strings/string.view/string.view.comparison/not_equal.pass.cpp
index 35b1a62..867834e 100644
--- a/test/std/strings/string.view/string.view.comparison/not_equal.pass.cpp
+++ b/test/std/strings/string.view/string.view.comparison/not_equal.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// template<class charT, class traits>
diff --git a/test/std/strings/string.view/string.view.cons/assign.pass.cpp b/test/std/strings/string.view/string.view.cons/assign.pass.cpp
index dca49af..7ab7b32 100644
--- a/test/std/strings/string.view/string.view.cons/assign.pass.cpp
+++ b/test/std/strings/string.view/string.view.cons/assign.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr basic_string_view& operator=(const basic_string_view &) noexcept = default;
diff --git a/test/std/strings/string.view/string.view.cons/default.pass.cpp b/test/std/strings/string.view/string.view.cons/default.pass.cpp
index 3134210..a0683bf 100644
--- a/test/std/strings/string.view/string.view.cons/default.pass.cpp
+++ b/test/std/strings/string.view/string.view.cons/default.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr basic_string_view () noexcept;
diff --git a/test/std/strings/string.view/string.view.cons/from_literal.pass.cpp b/test/std/strings/string.view/string.view.cons/from_literal.pass.cpp
index 043484e..b58a838 100644
--- a/test/std/strings/string.view/string.view.cons/from_literal.pass.cpp
+++ b/test/std/strings/string.view/string.view.cons/from_literal.pass.cpp
@@ -6,12 +6,13 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr basic_string_view(const _CharT* _s)
// : __data (_s), __size(_Traits::length(_s)) {}
-
#include <string_view>
#include <string>
#include <cassert>
diff --git a/test/std/strings/string.view/string.view.cons/from_ptr_len.pass.cpp b/test/std/strings/string.view/string.view.cons/from_ptr_len.pass.cpp
index 9a0c4dd..540fa74 100644
--- a/test/std/strings/string.view/string.view.cons/from_ptr_len.pass.cpp
+++ b/test/std/strings/string.view/string.view.cons/from_ptr_len.pass.cpp
@@ -6,12 +6,13 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr basic_string_view(const _CharT* _s, size_type _len)
// : __data (_s), __size(_len) {}
-
#include <string_view>
#include <string>
#include <cassert>
diff --git a/test/std/strings/string.view/string.view.cons/from_string.pass.cpp b/test/std/strings/string.view/string.view.cons/from_string.pass.cpp
index 15f28ab..ed5801f 100644
--- a/test/std/strings/string.view/string.view.cons/from_string.pass.cpp
+++ b/test/std/strings/string.view/string.view.cons/from_string.pass.cpp
@@ -6,12 +6,13 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// template<class Allocator>
// basic_string_view(const basic_string<_CharT, _Traits, Allocator>& _str) noexcept
-
#include <string_view>
#include <string>
#include <cassert>
diff --git a/test/std/strings/string.view/string.view.cons/from_string1.compile.fail.cpp b/test/std/strings/string.view/string.view.cons/from_string1.compile.fail.cpp
index dc3c809..e4cf136 100644
--- a/test/std/strings/string.view/string.view.cons/from_string1.compile.fail.cpp
+++ b/test/std/strings/string.view/string.view.cons/from_string1.compile.fail.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// template<class Allocator>
diff --git a/test/std/strings/string.view/string.view.cons/from_string2.compile.fail.cpp b/test/std/strings/string.view/string.view.cons/from_string2.compile.fail.cpp
index 192acf9..30540ee 100644
--- a/test/std/strings/string.view/string.view.cons/from_string2.compile.fail.cpp
+++ b/test/std/strings/string.view/string.view.cons/from_string2.compile.fail.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// template<class Allocator>
diff --git a/test/std/strings/string.view/string.view.find/find_char_size.pass.cpp b/test/std/strings/string.view/string.view.find/find_char_size.pass.cpp
index 78c70c3..15f61ab 100644
--- a/test/std/strings/string.view/string.view.find/find_char_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/find_char_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr size_type find(charT c, size_type pos = 0) const;
diff --git a/test/std/strings/string.view/string.view.find/find_first_not_of_char_size.pass.cpp b/test/std/strings/string.view/string.view.find/find_first_not_of_char_size.pass.cpp
index 351eb1d..10a9271 100644
--- a/test/std/strings/string.view/string.view.find/find_first_not_of_char_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/find_first_not_of_char_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr size_type find_first_not_of(charT c, size_type pos = 0) const;
diff --git a/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size.pass.cpp b/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size.pass.cpp
index 8ca9d91..90da2a4 100644
--- a/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr size_type find_first_not_of(const charT* s, size_type pos = 0) const;
diff --git a/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size_size.pass.cpp b/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size_size.pass.cpp
index d6f3a3f..69cefa7 100644
--- a/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr size_type find_first_not_of(const charT* s, size_type pos, size_type n) const;
diff --git a/test/std/strings/string.view/string.view.find/find_first_not_of_string_view_size.pass.cpp b/test/std/strings/string.view/string.view.find/find_first_not_of_string_view_size.pass.cpp
index 163ab73..3067f17 100644
--- a/test/std/strings/string.view/string.view.find/find_first_not_of_string_view_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/find_first_not_of_string_view_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// size_type find_first_not_of(const basic_string& str, size_type pos = 0) const;
diff --git a/test/std/strings/string.view/string.view.find/find_first_of_char_size.pass.cpp b/test/std/strings/string.view/string.view.find/find_first_of_char_size.pass.cpp
index e812d66..ff6af09 100644
--- a/test/std/strings/string.view/string.view.find/find_first_of_char_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/find_first_of_char_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr size_type find_first_of(charT c, size_type pos = 0) const;
diff --git a/test/std/strings/string.view/string.view.find/find_first_of_pointer_size.pass.cpp b/test/std/strings/string.view/string.view.find/find_first_of_pointer_size.pass.cpp
index 4703623..01fef4d 100644
--- a/test/std/strings/string.view/string.view.find/find_first_of_pointer_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/find_first_of_pointer_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr size_type find_first_of(const charT* s, size_type pos = 0) const;
diff --git a/test/std/strings/string.view/string.view.find/find_first_of_pointer_size_size.pass.cpp b/test/std/strings/string.view/string.view.find/find_first_of_pointer_size_size.pass.cpp
index 9d059f4..af68f94 100644
--- a/test/std/strings/string.view/string.view.find/find_first_of_pointer_size_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/find_first_of_pointer_size_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr size_type find_first_of(const charT* s, size_type pos, size_type n) const;
diff --git a/test/std/strings/string.view/string.view.find/find_first_of_string_view_size.pass.cpp b/test/std/strings/string.view/string.view.find/find_first_of_string_view_size.pass.cpp
index d1887aa..62bfe9f 100644
--- a/test/std/strings/string.view/string.view.find/find_first_of_string_view_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/find_first_of_string_view_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// size_type find_first_of(const basic_string_view& str, size_type pos = 0) const;
diff --git a/test/std/strings/string.view/string.view.find/find_last_not_of_char_size.pass.cpp b/test/std/strings/string.view/string.view.find/find_last_not_of_char_size.pass.cpp
index 798c899..1a3b937 100644
--- a/test/std/strings/string.view/string.view.find/find_last_not_of_char_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/find_last_not_of_char_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// size_type find_last_not_of(charT c, size_type pos = npos) const;
diff --git a/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size.pass.cpp b/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size.pass.cpp
index 51f8847..ba59de8 100644
--- a/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr size_type find_last_not_of(const charT* s, size_type pos = npos) const;
diff --git a/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size_size.pass.cpp b/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size_size.pass.cpp
index da39137..3719811 100644
--- a/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr size_type find_last_not_of(const charT* s, size_type pos, size_type n) const;
diff --git a/test/std/strings/string.view/string.view.find/find_last_not_of_string_view_size.pass.cpp b/test/std/strings/string.view/string.view.find/find_last_not_of_string_view_size.pass.cpp
index 2c57a46..5a2a319 100644
--- a/test/std/strings/string.view/string.view.find/find_last_not_of_string_view_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/find_last_not_of_string_view_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// size_type find_last_not_of(const basic_string& str, size_type pos = npos) const;
diff --git a/test/std/strings/string.view/string.view.find/find_last_of_char_size.pass.cpp b/test/std/strings/string.view/string.view.find/find_last_of_char_size.pass.cpp
index 5cdae5c..6710620 100644
--- a/test/std/strings/string.view/string.view.find/find_last_of_char_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/find_last_of_char_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr size_type find_last_of(charT c, size_type pos = npos) const;
diff --git a/test/std/strings/string.view/string.view.find/find_last_of_pointer_size.pass.cpp b/test/std/strings/string.view/string.view.find/find_last_of_pointer_size.pass.cpp
index e6e78ba..a9f381c 100644
--- a/test/std/strings/string.view/string.view.find/find_last_of_pointer_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/find_last_of_pointer_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr size_type find_last_of(const charT* s, size_type pos = npos) const;
diff --git a/test/std/strings/string.view/string.view.find/find_last_of_pointer_size_size.pass.cpp b/test/std/strings/string.view/string.view.find/find_last_of_pointer_size_size.pass.cpp
index 7f6001e..85849c1 100644
--- a/test/std/strings/string.view/string.view.find/find_last_of_pointer_size_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/find_last_of_pointer_size_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr size_type find_last_of(const charT* s, size_type pos, size_type n) const;
diff --git a/test/std/strings/string.view/string.view.find/find_last_of_string_view_size.pass.cpp b/test/std/strings/string.view/string.view.find/find_last_of_string_view_size.pass.cpp
index aa8665f..5c0ee64 100644
--- a/test/std/strings/string.view/string.view.find/find_last_of_string_view_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/find_last_of_string_view_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// size_type find_last_of(const basic_string& str, size_type pos = npos) const;
diff --git a/test/std/strings/string.view/string.view.find/find_pointer_size.pass.cpp b/test/std/strings/string.view/string.view.find/find_pointer_size.pass.cpp
index aa936ec..ecd0b15 100644
--- a/test/std/strings/string.view/string.view.find/find_pointer_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/find_pointer_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr size_type find(const charT* s, size_type pos = 0) const;
diff --git a/test/std/strings/string.view/string.view.find/find_pointer_size_size.pass.cpp b/test/std/strings/string.view/string.view.find/find_pointer_size_size.pass.cpp
index d167b7d..2e68e9e 100644
--- a/test/std/strings/string.view/string.view.find/find_pointer_size_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/find_pointer_size_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr size_type find(const charT* s, size_type pos, size_type n) const;
diff --git a/test/std/strings/string.view/string.view.find/find_string_view_size.pass.cpp b/test/std/strings/string.view/string.view.find/find_string_view_size.pass.cpp
index 86790dc..d189578 100644
--- a/test/std/strings/string.view/string.view.find/find_string_view_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/find_string_view_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr size_type find(const basic_string_view& str, size_type pos = 0) const;
diff --git a/test/std/strings/string.view/string.view.find/rfind_char_size.pass.cpp b/test/std/strings/string.view/string.view.find/rfind_char_size.pass.cpp
index 38236b8..96a0be5 100644
--- a/test/std/strings/string.view/string.view.find/rfind_char_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/rfind_char_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr size_type rfind(charT c, size_type pos = npos) const;
diff --git a/test/std/strings/string.view/string.view.find/rfind_pointer_size.pass.cpp b/test/std/strings/string.view/string.view.find/rfind_pointer_size.pass.cpp
index ebc8f61..6dfde17 100644
--- a/test/std/strings/string.view/string.view.find/rfind_pointer_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/rfind_pointer_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr size_type rfind(const charT* s, size_type pos = npos) const;
diff --git a/test/std/strings/string.view/string.view.find/rfind_pointer_size_size.pass.cpp b/test/std/strings/string.view/string.view.find/rfind_pointer_size_size.pass.cpp
index de54121..509293b 100644
--- a/test/std/strings/string.view/string.view.find/rfind_pointer_size_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/rfind_pointer_size_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr size_type rfind(const charT* s, size_type pos, size_type n) const;
diff --git a/test/std/strings/string.view/string.view.find/rfind_string_view_size.pass.cpp b/test/std/strings/string.view/string.view.find/rfind_string_view_size.pass.cpp
index bce0225..ad92d76 100644
--- a/test/std/strings/string.view/string.view.find/rfind_string_view_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.find/rfind_string_view_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr size_type rfind(const basic_string& str, size_type pos = npos) const;
diff --git a/test/std/strings/string.view/string.view.hash/char_type.hash.fail.cpp b/test/std/strings/string.view/string.view.hash/char_type.hash.fail.cpp
index 137644d..a1d6c10 100644
--- a/test/std/strings/string.view/string.view.hash/char_type.hash.fail.cpp
+++ b/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)
// <string_view>
diff --git a/test/std/strings/string.view/string.view.hash/enabled_hashes.pass.cpp b/test/std/strings/string.view/string.view.hash/enabled_hashes.pass.cpp
index a7572e8..6c72cc5 100644
--- a/test/std/strings/string.view/string.view.hash/enabled_hashes.pass.cpp
+++ b/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)
// <string_view>
diff --git a/test/std/strings/string.view/string.view.hash/string_view.pass.cpp b/test/std/strings/string.view/string.view.hash/string_view.pass.cpp
index 87706ac..1994257 100644
--- a/test/std/strings/string.view/string.view.hash/string_view.pass.cpp
+++ b/test/std/strings/string.view/string.view.hash/string_view.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <functional>
// template <class T>
diff --git a/test/std/strings/string.view/string.view.io/stream_insert.pass.cpp b/test/std/strings/string.view/string.view.io/stream_insert.pass.cpp
index a240851..083b84a 100644
--- a/test/std/strings/string.view/string.view.io/stream_insert.pass.cpp
+++ b/test/std/strings/string.view/string.view.io/stream_insert.pass.cpp
@@ -7,6 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: no-localization
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
// <string_view>
diff --git a/test/std/strings/string.view/string.view.io/stream_insert_decl_present.compile.pass.cpp b/test/std/strings/string.view/string.view.io/stream_insert_decl_present.compile.pass.cpp
index fbbee09..42a83f8 100644
--- a/test/std/strings/string.view/string.view.io/stream_insert_decl_present.compile.pass.cpp
+++ b/test/std/strings/string.view/string.view.io/stream_insert_decl_present.compile.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// template<class charT, class traits, class Allocator>
diff --git a/test/std/strings/string.view/string.view.iterators/begin.pass.cpp b/test/std/strings/string.view/string.view.iterators/begin.pass.cpp
index 2a610c3..e000d16 100644
--- a/test/std/strings/string.view/string.view.iterators/begin.pass.cpp
+++ b/test/std/strings/string.view/string.view.iterators/begin.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr const_iterator begin() const;
diff --git a/test/std/strings/string.view/string.view.iterators/end.pass.cpp b/test/std/strings/string.view/string.view.iterators/end.pass.cpp
index 5a52ac5..ef7b12d 100644
--- a/test/std/strings/string.view/string.view.iterators/end.pass.cpp
+++ b/test/std/strings/string.view/string.view.iterators/end.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr const_iterator end() const;
diff --git a/test/std/strings/string.view/string.view.iterators/rbegin.pass.cpp b/test/std/strings/string.view/string.view.iterators/rbegin.pass.cpp
index 0f3c110..fcd849e 100644
--- a/test/std/strings/string.view/string.view.iterators/rbegin.pass.cpp
+++ b/test/std/strings/string.view/string.view.iterators/rbegin.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// const_iterator rbegin() const;
diff --git a/test/std/strings/string.view/string.view.iterators/rend.pass.cpp b/test/std/strings/string.view/string.view.iterators/rend.pass.cpp
index 1eb781d..f6effdd 100644
--- a/test/std/strings/string.view/string.view.iterators/rend.pass.cpp
+++ b/test/std/strings/string.view/string.view.iterators/rend.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr const_iterator rend() const;
diff --git a/test/std/strings/string.view/string.view.modifiers/remove_prefix.pass.cpp b/test/std/strings/string.view/string.view.modifiers/remove_prefix.pass.cpp
index cb65cdf..bda42f0 100644
--- a/test/std/strings/string.view/string.view.modifiers/remove_prefix.pass.cpp
+++ b/test/std/strings/string.view/string.view.modifiers/remove_prefix.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// void remove_prefix(size_type _n)
diff --git a/test/std/strings/string.view/string.view.modifiers/remove_suffix.pass.cpp b/test/std/strings/string.view/string.view.modifiers/remove_suffix.pass.cpp
index 341ea66..95a2331 100644
--- a/test/std/strings/string.view/string.view.modifiers/remove_suffix.pass.cpp
+++ b/test/std/strings/string.view/string.view.modifiers/remove_suffix.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// void remove_suffix(size_type _n)
diff --git a/test/std/strings/string.view/string.view.modifiers/swap.pass.cpp b/test/std/strings/string.view/string.view.modifiers/swap.pass.cpp
index 21dfa57..db22998 100644
--- a/test/std/strings/string.view/string.view.modifiers/swap.pass.cpp
+++ b/test/std/strings/string.view/string.view.modifiers/swap.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// void swap(basic_string_view& _other) noexcept
diff --git a/test/std/strings/string.view/string.view.nonmem/quoted.pass.cpp b/test/std/strings/string.view/string.view.nonmem/quoted.pass.cpp
index 18f9e10..3d47f62 100644
--- a/test/std/strings/string.view/string.view.nonmem/quoted.pass.cpp
+++ b/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
// <iomanip>
diff --git a/test/std/strings/string.view/string.view.ops/compare.pointer.pass.cpp b/test/std/strings/string.view/string.view.ops/compare.pointer.pass.cpp
index a48186b..3133939 100644
--- a/test/std/strings/string.view/string.view.ops/compare.pointer.pass.cpp
+++ b/test/std/strings/string.view/string.view.ops/compare.pointer.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr int compare(const charT* s) const;
diff --git a/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp b/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp
index a3b7b6c..d21a0c5 100644
--- a/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr int compare(size_type pos1, size_type n1, const charT* s) const;
diff --git a/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp b/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp
index 4088e2f..e4dd2c5 100644
--- a/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp
+++ b/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr int compare(size_type pos1, size_type n1, basic_string_view str) const;
diff --git a/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp b/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp
index 1409f08..57a0b13 100644
--- a/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr int compare(size_type pos1, size_type n1,
diff --git a/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp b/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp
index ef81db6..3ea44ae 100644
--- a/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp
+++ b/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr int compare(size_type pos1, size_type n1, basic_string_view str,
diff --git a/test/std/strings/string.view/string.view.ops/compare.sv.pass.cpp b/test/std/strings/string.view/string.view.ops/compare.sv.pass.cpp
index e0848a5..ff68706 100644
--- a/test/std/strings/string.view/string.view.ops/compare.sv.pass.cpp
+++ b/test/std/strings/string.view/string.view.ops/compare.sv.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr int compare(basic_string_view str) const noexcept;
diff --git a/test/std/strings/string.view/string.view.ops/copy.pass.cpp b/test/std/strings/string.view/string.view.ops/copy.pass.cpp
index 8e612db..709e265 100644
--- a/test/std/strings/string.view/string.view.ops/copy.pass.cpp
+++ b/test/std/strings/string.view/string.view.ops/copy.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// size_type copy(charT* s, size_type n, size_type pos = 0) const;
@@ -16,7 +18,6 @@
// Effects: Equivalent to std::copy_n(begin() + pos, rlen, s).
// Returns: rlen.
-
#include <string_view>
#include <algorithm>
#include <cassert>
diff --git a/test/std/strings/string.view/string.view.ops/substr.pass.cpp b/test/std/strings/string.view/string.view.ops/substr.pass.cpp
index c2fd01f..c2b9511 100644
--- a/test/std/strings/string.view/string.view.ops/substr.pass.cpp
+++ b/test/std/strings/string.view/string.view.ops/substr.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// constexpr basic_string_view substr(size_type pos = 0, size_type n = npos) const;
diff --git a/test/std/strings/string.view/string_view.literals/literal.pass.cpp b/test/std/strings/string.view/string_view.literals/literal.pass.cpp
index 5c34507..66ab024 100644
--- a/test/std/strings/string.view/string_view.literals/literal.pass.cpp
+++ b/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++14
#include <string_view>
#include <cassert>
diff --git a/test/std/strings/string.view/string_view.literals/literal.verify.cpp b/test/std/strings/string.view/string_view.literals/literal.verify.cpp
index 96e54da..a5b1d4d 100644
--- a/test/std/strings/string.view/string_view.literals/literal.verify.cpp
+++ b/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++14
#include <string_view>
diff --git a/test/std/strings/string.view/traits_mismatch.compile.fail.cpp b/test/std/strings/string.view/traits_mismatch.compile.fail.cpp
index 5cf3fa9..5075642 100644
--- a/test/std/strings/string.view/traits_mismatch.compile.fail.cpp
+++ b/test/std/strings/string.view/traits_mismatch.compile.fail.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// The string_views's value type must be the same as the traits's char_type
diff --git a/test/std/strings/string.view/trivially_copyable.compile.pass.cpp b/test/std/strings/string.view/trivially_copyable.compile.pass.cpp
index e807258..6127d06 100644
--- a/test/std/strings/string.view/trivially_copyable.compile.pass.cpp
+++ b/test/std/strings/string.view/trivially_copyable.compile.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// P2251 was voted into C++23, but is supported even in C++17 mode by all vendors.
// <string_view>
diff --git a/test/std/strings/string.view/types.pass.cpp b/test/std/strings/string.view/types.pass.cpp
index d90f777..89c6c3c 100644
--- a/test/std/strings/string.view/types.pass.cpp
+++ b/test/std/strings/string.view/types.pass.cpp
@@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//
+// UNSUPPORTED: !stdlib=libc++ && (c++03 || c++11 || c++14)
+
// <string_view>
// Test nested types and default template args: