[libc++][ranges] Temporarily mark `ranges::join_view` as experimental.
authorvarconst <varconsteq@gmail.com>
Mon, 30 Jan 2023 08:35:55 +0000 (00:35 -0800)
committerKonstantin Varlamov <varconst@apple.com>
Mon, 30 Jan 2023 08:36:07 +0000 (00:36 -0800)
This is in anticipation of https://isocpp.org/files/papers/D2770R0.html,
which is ABI-breaking for `join_view`.

Differential Revision: https://reviews.llvm.org/D142520

28 files changed:
libcxx/include/__ranges/join_view.h
libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy.segmented.pass.cpp
libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy_backward.pass.cpp
libcxx/test/std/library/description/conventions/customization.point.object/cpo.compile.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/adaptor.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/base.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/begin.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/ctad.compile.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/ctad.verify.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/ctor.default.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/ctor.view.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/end.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/general.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/arrow.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/ctor.default.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/ctor.other.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/ctor.parent.outer.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/decrement.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/eq.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/increment.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/iter.move.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/iter.swap.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/member_types.compile.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/star.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/sentinel/ctor.default.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/sentinel/ctor.other.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/sentinel/ctor.parent.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.join.view/sentinel/eq.pass.cpp

index 869540fc99c21e77a94df8f75457f75382e0bae7..9d56e13b8439ddc4b480b8f979f9f898e6acc757 100644 (file)
 
 _LIBCPP_BEGIN_NAMESPACE_STD
 
-#if _LIBCPP_STD_VER > 17
+// Note: `join_view` is still marked experimental because there is an ABI-breaking change that affects `join_view` in
+// the pipeline (https://isocpp.org/files/papers/D2770R0.html).
+// TODO: make `join_view` non-experimental once D2770 is implemented.
+#if _LIBCPP_STD_VER > 17 && defined(_LIBCPP_ENABLE_EXPERIMENTAL)
 
 namespace ranges {
   template<class>
@@ -445,7 +448,7 @@ struct __segmented_iterator_traits<ranges::__join_view_iterator<_View, _Const>>
   }
 };
 
-#endif // _LIBCPP_STD_VER > 17
+#endif // #if _LIBCPP_STD_VER > 17 && defined(_LIBCPP_ENABLE_EXPERIMENTAL)
 
 _LIBCPP_END_NAMESPACE_STD
 
index 5b8d8b803df302c6f7b21782de95fdc31d6694d7..cf1f926031ed8cbe27574a96affe83d2f2d30970 100644 (file)
@@ -7,6 +7,8 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// TODO: make `join_view` non-experimental once D2770 is implemented.
+// UNSUPPORTED: !c++experimental
 
 #include <algorithm>
 #include <array>
index 036dfe570b3bdfb89674cb91df0d287b17a88c62..9cad71d1762147649fd8b8607a894f314f5340ca 100644 (file)
@@ -9,7 +9,8 @@
 // <algorithm>
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
-
+// TODO: make `join_view` non-experimental once D2770 is implemented.
+// UNSUPPORTED: !c++experimental
 
 // template<bidirectional_iterator I1, sentinel_for<I1> S1, bidirectional_iterator I2>
 //   requires indirectly_copyable<I1, I2>
index 060f179fe1683262d7ad54d1cad0e5a0a9c84c43..e6c0e09dfff5f876555becf458b2ede7b11471cf 100644 (file)
@@ -7,6 +7,8 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// TODO: make `join_view` non-experimental once D2770 is implemented.
+// UNSUPPORTED: !c++experimental
 
 // [customization.point.object]
 // [range.adaptor.object] "A range adaptor object is a customization point object..."
index 9beb3d282a27cc9428b564d45a3b9792559d3bf4..afaf32272109963388f5670cdb408e8db2bf6076 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // std::views::join
 
index caf018b582263a5acc1553a006265039927a109f..13883e894ac7bf98a58f42a2d91360177f9cfe06 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // constexpr V base() const& requires copy_constructible<V>;
 // constexpr V base() &&;
index 332973da96f38bff5a714c023f06595a4098aa72..9e4fa5f8c59a44a01806affc543f6dd14fccc630 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // constexpr auto begin();
 // constexpr auto begin() const
index a8eafc5a9c021112cf509450e4e752c289ce9f3d..2c470991be0b6bce0ed9c06bca4a7455eacbf426 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // template<class R>
 //   explicit join_view(R&&) -> join_view<views::all_t<R>>;
index 2c6eea500580d6bf59da656797c4eaa3dc4d7076..eddc950747ba768fa0ec25591e0b93c5bb5f40bc 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // template<class R>
 //   explicit join_view(R&&) -> join_view<views::all_t<R>>;
index 0daff7d3b3c98abc8f6015855cc09aaa8f707eba..26206e32c358cec7d35baf43dec947ba7d8b9da1 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // join_view() requires default_initializable<V> = default;
 
index 75d4c7e5916b0a50e0ea01b6d6726fc04a25487a..ce5393062d77814d7c02d4643b37de688873b0ed 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // constexpr explicit join_view(V base);
 
index 5e49618d2b022d7e060a54c219bc5fe32bc999bc..7e225202cc23127562d4135e777f0592d6fa92d5 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // constexpr auto end();
 // constexpr auto end() const;
index f92eb418fac77c89bb9e5745efcb3b4fca461ecb..e9eab585260cdc9919db0f34853e7ce405abc462 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // General tests for join_view. This file does not test anything specifically.
 
index ddcf66bfe775e7dbe0fb66dfdc422cece3adb0b4..e610cde2c3b5bec145edc6c7df916ab2a25ee0a2 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // constexpr InnerIter operator->() const
 //   requires has-arrow<InnerIter> && copyable<InnerIter>;
index 2f9bbb27548bb8898029aa1fab7fd9b4210eae0d..e4f193e4e6064215817319bbfc7349221cb4d17b 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // iterator() requires default_initializable<OuterIter> = default;
 
index 76abcd4746f7e807eb9e5bd35337c8fecffe4c25..a0406f90c88c63994a49ec1a2523c65c070f7555 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // constexpr iterator(iterator<!Const> i)
 //             requires Const &&
index 7cca16ad2793230e3875c4d49b63a4cd6868fe27..215318f15cad0dbaf89febbeffa98ca7d6c634c2 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // constexpr iterator(Parent& parent, OuterIter outer);
 
index eb2c34ce9b69014ccf2192d3cfd4914f10102d6f..4363fb0e330c3b9d2433867df8ee4252d5d1af6b 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // constexpr iterator& operator--();
 //              requires ref-is-glvalue && bidirectional_range<Base> &&
index 4885f16625bf5e62bed162c2c07e63d0efbcc572..327cc82b06b085b3138c266500aa9419f6344cf3 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // friend constexpr bool operator==(const iterator& x, const iterator& y);
 //          requires ref-is-glvalue && equality_comparable<iterator_t<Base>> &&
index f46edd3562ba1433ff430318c5bd13b72cede30e..4bcb4de7e9c8868d212201604f742505be13d180 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // constexpr iterator& operator++();
 // constexpr void operator++(int);
index 917e72dc858545ccf29f24a4a8e5377e8bb033b9..0bf6aa3d926146e46bd5e481337b237bf8d44269 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // friend constexpr decltype(auto) iter_move(const iterator& i);
 
index 28e1bf75726f6391af5ba4222fab1116dbaeea05..e9b73f1a415966aa323b8c75674a4d8d1800aa9e 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // friend constexpr void iter_swap(const iterator& x, const iterator& y);
 
index b9b9d73d77e265557cdccc22885b98303006428d..17b98facd65081d4718d73b1a32804dbb67d81e2 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // Iterator traits and member typedefs in join_view::<iterator>.
 
index 73457b826df0b04b14b8f62e8491f70d1a5d35b5..fa6f7bb031207a3ae81cf91e3a510583f035197b 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // constexpr decltype(auto) operator*() const;
 
index 42fcc733e181f4f1ee1b48e5c5f2ee9751b59286..0eebe14af3fcba3e7298ed241e525556e8ccb7c2 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // sentinel() = default;
 
index 4bd8025efb5c1b342f7058c43c7f53acf600a3b9..c2d7058746d758bce4151b6b870e7669333eb783 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // constexpr sentinel(sentinel<!Const> s);
 //             requires Const && convertible_to<sentinel_t<V>, sentinel_t<Base>>;
index 1ac68277338fee2ee8e23283ff000b2e44ffa8a3..a9df7c3881ba8f9c4535e3b6fc4fd48fb5ebaec3 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // constexpr explicit sentinel(Parent& parent);
 
index 7852d1bfe9b38ab7fdddc21716827bb9a94d35d9..cbd03b84f208b9f080d8b5c9740e2bc0f1bd752d 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17
+// UNSUPPORTED: !c++experimental
 
 // template<bool OtherConst>
 //   requires sentinel_for<sentinel_t<Base>, iterator_t<maybe-const<OtherConst, V>>>