45 using reverse_iterator = std::reverse_iterator<Iter>;
50 template <
typename Container>
52 : beginIt(Detail::begin_impl(c)), endIt(Detail::end_impl(c)) {}
55 : beginIt(std::move(beginIt)), endIt(std::move(endIt)) {}
59 auto begin()
const {
return beginIt; }
60 auto end()
const {
return endIt; }
61 auto rbegin()
const {
return reverse_iterator{endIt}; }
62 auto rend()
const {
return reverse_iterator{beginIt}; }
64 bool empty()
const {
return beginIt == endIt; }