Index: libcxx/www/cxx2a_status.html
===================================================================
--- libcxx/www/cxx2a_status.html
+++ libcxx/www/cxx2a_status.html
@@ -118,7 +118,7 @@
P0608R3 | LWG | A sane variant converting constructor | San Diego | Complete | 9.0 |
P0655R1 | LWG | visit<R>: Explicit Return Type for visit | San Diego | | |
P0771R1 | LWG | std::function move constructor should be noexcept | San Diego | Complete | 6.0 |
- P0896R4 | LWG | The One Ranges Proposal | San Diego | | |
+ P0896R4 | LWG | The One Ranges Proposal | San Diego | In progress | |
P0899R1 | LWG | P0899R1 - LWG 3016 is not a defect | San Diego | Nothing to do | |
P0919R3 | LWG | Heterogeneous lookup for unordered containers | San Diego | Complete | 12.0 |
P0972R0 | LWG | <chrono> zero(), min(), and max() should be noexcept | San Diego | Complete | 8.0 |
@@ -213,7 +213,7 @@
P1862 | LWG | Ranges adaptors for non-copyable iterators | Belfast | | |
P1865 | LWG | Add max() to latch and barrier | Belfast | | |
P1869 | LWG | Rename 'condition_variable_any' interruptible wait methods | Belfast | | |
- P1870 | LWG | forwarding-range is too subtle | Belfast | | |
+ P1870 | LWG | forwarding-range is too subtle | Belfast | In progress | |
P1871 | LWG | Should concepts be enabled or disabled? | Belfast | | |
P1872 | LWG | span should have size_type, not index_type | Belfast | Complete | 10.0 |
P1878 | LWG | Constraining Readable Types | Belfast | | |
@@ -561,7 +561,7 @@
3374 | P0653 + P1006 should have made the other std::to_address overload constexpr | Prague | |
3375 | decay in viewable_range should be remove_cvref | Prague | |
3377 | elements_view::iterator befriends a specialization of itself | Prague | |
- 3379 | "safe" in several library names is misleading | Prague | |
+ 3379 | "safe" in several library names is misleading | Prague | In progress |
3380 | common_type and comparison categories | Prague | |
3381 | begin and data must agree for contiguous_range | Prague | |
3382 | NTTP for pair and array | Prague | |
Index: libcxx/test/std/strings/string.view/enable_borrowed_range.compile.pass.cpp
===================================================================
--- /dev/null
+++ libcxx/test/std/strings/string.view/enable_borrowed_range.compile.pass.cpp
@@ -0,0 +1,29 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// UNSUPPORTED: c++03, c++11, c++14, c++17
+
+//
+
+// template
+// inline constexpr bool ranges::enable_borrowed_range<
+// basic_string_view> = true;
+
+#include
+
+#include "test_macros.h"
+
+int main(int, char**)
+{
+ using std::ranges::enable_borrowed_range;
+ static_assert(enable_borrowed_range>);
+ static_assert(enable_borrowed_range>);
+ static_assert(enable_borrowed_range>);
+
+ return 0;
+}
Index: libcxx/test/std/ranges/range.range/enable_borrowed_range.compile.pass.cpp
===================================================================
--- /dev/null
+++ libcxx/test/std/ranges/range.range/enable_borrowed_range.compile.pass.cpp
@@ -0,0 +1,69 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// UNSUPPORTED: c++03, c++11, c++14, c++17
+
+//
+
+// template
+// inline constexpr bool enable_borrowed_range = false;
+
+#include
+#include
+#include
+#include
+#include
+#include