Variables | |
constexpr adl_advance_detail::advance_fn | advance {} |
constexpr _begin_::fn | begin {} |
constexpr _cbegin_::fn | cbegin {} |
constexpr _cend_::fn | cend {} |
constexpr _crbegin_::fn | crbegin {} |
constexpr _crend_::fn | crend {} |
constexpr data_detail::data_fn | data {} |
constexpr _end_::fn | end {} |
constexpr adl_move_detail::iter_move_fn | iter_move {} |
constexpr _rbegin_::fn | rbegin {} |
constexpr _rend_::fn | rend {} |
constexpr _size_::fn | size {} |
r |
r
, if r
is an array. Otherwise, r.begin()
if that expression is well-formed and returns an Iterator. Otherwise, begin(r)
if that expression returns an Iterator.r |
r+size
(r), if r
is an array. Otherwise, r.end()
if that expression is well-formed and returns an Iterator. Otherwise, end(r)
if that expression returns an Iterator.r |
ranges::begin
with a const-qualified reference to r.r |
ranges::end
with a const-qualified reference to r.r |
make_reverse_iterator(r+size(r))
if r is an array. Otherwise, r.rbegin()
if that expression is well-formed and returns an Iterator. Otherwise, make_reverse_iterator(ranges::end(r))
if ranges::begin(r)
and ranges::end(r)
are both well-formed and have the same type that satisfies BidirectionalIterator.r |
make_reverse_iterator(r))
if r is an array. Otherwise, r.rend()
if that expression is well-formed and returns a type that satisfies Sentinel<S, I>
where I
is the type of ranges::rbegin(r)
. Otherwise, make_reverse_iterator(ranges::begin(r))
if ranges::begin(r)
and ranges::end(r)
are both well-formed and have the same type that satisfies BidirectionalIterator.r |
ranges::rbegin
with a const-qualified reference to r.r |
ranges::rend
with a const-qualified reference to r.size
advance_fn
Not to spec: advance is an ADL customization point