Created on 2019-11-08.00:00:00 last changed 58 months ago
Proposed resolution:
This wording is relative to N4835.
Change [ranges.syn], header <ranges> synopsis, as indicated:
#include <initializer_list>
#include <iterator>
namespace std::ranges {
[…]
// [range.range], ranges
template<class T>
concept range = see below;
[…]
template<range R>
using range_difference_t = iter_difference_t<iterator_t<R>>;
template<sized_range R>
using range_size_t = decltype(ranges::size(declval<R&>()));
template<range R>
using range_value_t = iter_value_t<iterator_t<R>>;
[…]
// [range.ref.view], all view
namespace views { inline constexpr unspecified all = unspecified; }
inline constexpr unspecified all = unspecified;
template<viewable_range R>
using all_tview = decltype(views::all(declval<R>()));
}
[…]
}
Globally replace all occurrences of all_view with views::all_t. There are 36 occurrences in addition to the definition in the <ranges> synopsis that was changed above.
[ 2020-02-10 Move to Immediate Monday afternoon in Prague ]
[ 2019-11-23 Issue Prioritization ]
Priority to 1 after reflector discussion.
template<range R> using range_difference_t = iter_difference_t<iterator_t<R>>; template<sized_range R> using range_size_t = decltype(ranges::size(declval<R&>()));
David Olsen:
The proposed wording has been approved by LEWG and LWG in Belfast.| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2021-02-25 10:48:01 | admin | set | status: wp -> c++20 |
| 2020-02-24 16:02:59 | admin | set | status: immediate -> wp |
| 2020-02-10 19:48:51 | admin | set | messages: + msg11034 |
| 2020-02-10 19:48:51 | admin | set | status: new -> immediate |
| 2019-11-23 16:10:15 | admin | set | messages: + msg10841 |
| 2019-11-16 17:05:27 | admin | set | messages: + msg10820 |
| 2019-11-08 00:00:00 | admin | create | |