Advertisement
Radfler

::as_reversed

May 6th, 2016
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.53 KB | None | 0 0
  1. #include <iterator>
  2.  
  3. namespace details {
  4.  
  5.     template<typename Container>
  6.     struct reversed_container {
  7.        
  8.         Container& container;
  9.  
  10.         constexpr decltype(auto) begin() const {
  11.             using std::end;
  12.             return std::make_reverse_iterator(end(container));
  13.         }
  14.  
  15.         constexpr decltype(auto) end() const {
  16.             using std::begin;
  17.             return std::make_reverse_iterator(begin(container));
  18.         }
  19.        
  20.     };
  21.  
  22. }
  23.  
  24. template<typename Container>
  25. constexpr details::reversed_container<Container> as_reversed(Container& container) {
  26.     return {container};
  27. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement