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; }