@@ -584,7 +584,7 @@ namespace ranges {
584
584
// clang-format off
585
585
template <class... _Types>
586
586
requires constructible_from<_Ty, _Types...>
587
- constexpr explicit single_view(in_place_t, _Types&&... _Args) noexcept( // explicit per LWG-3428
587
+ constexpr explicit single_view(in_place_t, _Types&&... _Args) noexcept(
588
588
is_nothrow_constructible_v<_Ty, _Types...>) // strengthened
589
589
// clang-format on
590
590
: _Val{in_place, _STD forward<_Types>(_Args)...} {}
@@ -1393,8 +1393,7 @@ namespace ranges {
1393
1393
1394
1394
_NODISCARD friend constexpr difference_type operator-(const _Iterator& _Left,
1395
1395
const _Iterator& _Right) noexcept(noexcept(_Left._Current - _Right._Current)) /* strengthened */
1396
- requires sized_sentinel_for<iterator_t<_Base>, iterator_t<_Base>> { // constraints per LWG issue
1397
- // unnumbered as of 2020-09-03
1396
+ requires sized_sentinel_for<iterator_t<_Base>, iterator_t<_Base>> {
1398
1397
#if _ITERATOR_DEBUG_LEVEL != 0
1399
1398
_Left._Same_range(_Right);
1400
1399
#endif // _ITERATOR_DEBUG_LEVEL != 0
@@ -1749,8 +1748,8 @@ namespace ranges {
1749
1748
}
1750
1749
};
1751
1750
1752
- template <class _Rng> // Per P/R of LWG-3447
1753
- take_view(_Rng&&, range_difference_t<_Rng>)-> take_view<views::all_t<_Rng>>;
1751
+ template <class _Rng>
1752
+ take_view(_Rng&&, range_difference_t<_Rng>) -> take_view<views::all_t<_Rng>>;
1754
1753
1755
1754
namespace views {
1756
1755
// VARIABLE views::take
@@ -1889,7 +1888,7 @@ namespace ranges {
1889
1888
1890
1889
// clang-format off
1891
1890
template <bool _OtherConst = !_Const>
1892
- requires sentinel_for<_Base_sentinel, _Maybe_const_iter<_OtherConst>> // Per Resolution of LWG-3449
1891
+ requires sentinel_for<_Base_sentinel, _Maybe_const_iter<_OtherConst>>
1893
1892
_NODISCARD friend constexpr bool operator==(
1894
1893
const _Maybe_const_iter<_OtherConst>& _Left, const _Sentinel& _Right) {
1895
1894
// clang-format on
@@ -1952,7 +1951,7 @@ namespace ranges {
1952
1951
// clang-format off
1953
1952
_NODISCARD constexpr auto begin() const noexcept(
1954
1953
noexcept(_RANGES begin(_Range))) /* strengthened */ requires range<const _Vw>
1955
- && indirect_unary_predicate<const _Pr, iterator_t<const _Vw>> { // Per Resolution of LWG-3450
1954
+ && indirect_unary_predicate<const _Pr, iterator_t<const _Vw>> {
1956
1955
// clang-format on
1957
1956
return _RANGES begin(_Range);
1958
1957
}
@@ -1972,7 +1971,6 @@ namespace ranges {
1972
1971
_NODISCARD constexpr auto end() const noexcept(
1973
1972
noexcept(_RANGES end(_Range)) && is_nothrow_move_constructible_v<_Sentinel<true>>) /* strengthened */
1974
1973
requires range<const _Vw> && indirect_unary_predicate<const _Pr, iterator_t<const _Vw>> {
1975
- // Per Resolution of LWG-3450
1976
1974
// clang-format on
1977
1975
#if _CONTAINER_DEBUG_LEVEL > 0
1978
1976
_STL_VERIFY(_Pred, "value-initialized take_while_view cannot call end");
@@ -2052,7 +2050,7 @@ namespace ranges {
2052
2050
}
2053
2051
2054
2052
// clang-format off
2055
- _NODISCARD constexpr auto begin() // constraints per proposed resolution of LWG-3482
2053
+ _NODISCARD constexpr auto begin()
2056
2054
requires (!(_Simple_view<_Vw> && random_access_range<const _Vw> && sized_range<const _Vw>)) {
2057
2055
// clang-format on
2058
2056
if constexpr (sized_range<_Vw> && random_access_range<_Vw>) {
@@ -2098,7 +2096,7 @@ namespace ranges {
2098
2096
}
2099
2097
2100
2098
// clang-format off
2101
- _NODISCARD constexpr auto begin() const // constraints per proposed resolution of LWG-3482
2099
+ _NODISCARD constexpr auto begin() const
2102
2100
requires random_access_range<const _Vw> && sized_range<const _Vw> {
2103
2101
// clang-format on
2104
2102
const auto _Offset = (_STD min)(_RANGES distance(_Range), _Count);
@@ -2363,7 +2361,6 @@ namespace ranges {
2363
2361
common_view() = default;
2364
2362
constexpr explicit common_view(_Vw _Base_) noexcept(is_nothrow_move_constructible_v<_Vw>) // strengthened
2365
2363
: _Base(_STD move(_Base_)) {}
2366
- // converting constructor template omitted per LWG-3405
2367
2364
2368
2365
_NODISCARD constexpr _Vw base() const& noexcept(
2369
2366
is_nothrow_copy_constructible_v<_Vw>) /* strengthened */ requires copy_constructible<_Vw> {
@@ -2827,7 +2824,7 @@ namespace ranges {
2827
2824
2828
2825
_NODISCARD friend constexpr difference_type operator-(const _Iterator& _Left,
2829
2826
const _Iterator& _Right) noexcept(noexcept(_Left._Current - _Right._Current)) /* strengthened */
2830
- requires sized_sentinel_for<iterator_t<_Base>, iterator_t<_Base>> { // Per LWG-3483
2827
+ requires sized_sentinel_for<iterator_t<_Base>, iterator_t<_Base>> {
2831
2828
return _Left._Current - _Right._Current;
2832
2829
}
2833
2830
};
@@ -2867,7 +2864,7 @@ namespace ranges {
2867
2864
}
2868
2865
2869
2866
// clang-format off
2870
- template <bool _OtherConst> // Per resolution of LWG-3406
2867
+ template <bool _OtherConst>
2871
2868
requires sentinel_for<sentinel_t<_Base>, iterator_t<_Maybe_const<_OtherConst, _Vw>>>
2872
2869
_NODISCARD friend constexpr bool operator==(const _Iterator<_OtherConst>& _Left,
2873
2870
const _Sentinel& _Right) noexcept(noexcept(_Get_current(_Left) == _Right._Last)) /* strengthened */ {
@@ -2876,7 +2873,7 @@ namespace ranges {
2876
2873
}
2877
2874
2878
2875
// clang-format off
2879
- template <bool _OtherConst> // Per resolution of LWG-3406
2876
+ template <bool _OtherConst>
2880
2877
requires sized_sentinel_for<sentinel_t<_Base>, iterator_t<_Maybe_const<_OtherConst, _Vw>>>
2881
2878
_NODISCARD friend constexpr range_difference_t<_Maybe_const<_OtherConst, _Vw>> operator-(
2882
2879
const _Iterator<_OtherConst>& _Left, const _Sentinel& _Right) noexcept(
@@ -2886,7 +2883,7 @@ namespace ranges {
2886
2883
}
2887
2884
2888
2885
// clang-format off
2889
- template <bool _OtherConst> // Per resolution of LWG-3406
2886
+ template <bool _OtherConst>
2890
2887
requires sized_sentinel_for<sentinel_t<_Base>, iterator_t<_Maybe_const<_OtherConst, _Vw>>>
2891
2888
_NODISCARD friend constexpr range_difference_t<_Maybe_const<_OtherConst, _Vw>> operator-(
2892
2889
const _Sentinel& _Left, const _Iterator<_OtherConst>& _Right) noexcept(
@@ -2922,14 +2919,14 @@ namespace ranges {
2922
2919
_NODISCARD constexpr _Iterator<true> begin() const
2923
2920
noexcept(noexcept(_RANGES begin(_Range))
2924
2921
&& is_nothrow_move_constructible_v<iterator_t<const _Vw>>) /* strengthened */
2925
- requires range<const _Vw> { // Per resolution of LWG-3406
2922
+ requires range<const _Vw> {
2926
2923
return _Iterator<true>{_RANGES begin(_Range)};
2927
2924
}
2928
2925
2929
2926
// clang-format off
2930
2927
_NODISCARD constexpr auto end() noexcept(noexcept(
2931
2928
_RANGES end(_Range)) && is_nothrow_move_constructible_v<sentinel_t<_Vw>>) /* strengthened */
2932
- requires (!_Simple_view<_Vw>) { // Per resolution of LWG-3406
2929
+ requires (!_Simple_view<_Vw>) {
2933
2930
// clang-format on
2934
2931
if constexpr (common_range<_Vw>) {
2935
2932
return _Iterator<false>{_RANGES end(_Range)};
0 commit comments