You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: libcxx/docs/ReleaseNotes/21.rst
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -54,6 +54,7 @@ Implemented Papers
54
54
- P2770R0: Stashing stashing ``iterators`` for proper flattening (`Github <https://github.com/llvm/llvm-project/issues/105250>`__)
55
55
- P2655R3: ``common_reference_t`` of ``reference_wrapper`` Should Be a Reference Type (`Github <https://github.com/llvm/llvm-project/issues/105260>`__)
56
56
- P3168R2 Give ``std::optional`` Range Support (`Github <https://github.com/llvm/llvm-project/issues/105430>`__)
// 1: optional::iterator and optional const_iterator satisfy contiguous_iterator and random_access_iterator
16
-
// 2. The value types and reference types for optional::iterator and optional::const_iterator are {_Tp, _Tp&} and {_Tp, const _Tp&} respectively
17
-
// 3: The optional::begin() and optional::end() are marked noexcept.
18
-
// 4: optionals that have a value have begin() != end(), whereas one that doesn't has begin() == end();
19
-
// 5: The corresponding size for the following optionals is respected: has_value() == 1, !has_value() == 0
20
-
// 6: Dereferencing an engaged optional's iterator returns the correct value.
21
-
// 7: std::ranges::enable_view<optional<T>> == true, and std::format_kind<optional<T>> == true
22
-
// 8: Verify that an iterator for loop counts only 1 item for an engaged optional, and 0 for an unegaged one.
23
-
// 9: An optional with value that is reset will have a begin() == end(), then when it is reassigned a value, begin() != end(), and *begin() will contain the new value.
14
+
// template <class T> class optional::const_iterator;
// 6: Dereferencing an engaged optional's iterator returns the correct value.
148
+
{
149
+
test_value();
150
+
static_assert(test_value());
109
151
}
110
152
111
-
{ // 8
112
-
static_assert(test_loop(opt) == 1);
113
-
static_assert(test_loop(unengaged_opt) == 0);
114
-
assert(test_loop(opt) == 1);
115
-
assert(test_loop(unengaged_opt) == 0);
153
+
// 7: std::ranges::enable_view<optional<T>> == true, and std::format_kind<optional<T>> == true
154
+
{
155
+
test_syn();
156
+
static_assert(test_syn());
116
157
}
117
158
118
-
{ // 9
159
+
// 8: An optional with value that is reset will have a begin() == end(), then when it is reassigned a value, begin() != end(), and *begin() will contain the new value.
0 commit comments