ulfben icon

reverse for_each

ulfben | PRO | 02/14/20 09:10:24 AM UTC | 0 ⭐ | 1096 👁️ | Never ⏰ | []
C++ |

920 B

|

None

|

0 👍

/

0 👎

#include <iterator>
#include <vector>
 
template<typename T>
class reverse;
 
template<typename T>
class reverse<T&> {
private:
  T& _iterable;
public:
  explicit reverse(T& iterable) : _iterable{iterable} {}
  auto begin() const { return std::rbegin(_iterable); }
  auto end() const { return std::rend(_iterable); }
};
 
template<typename T>
class reverse<T&&> {
private:
  T _iterable;
public:
  explicit reverse(T&& iterable) : _iterable{std::move(iterable)} {}
  auto begin() const { return std::rbegin(_iterable); }
  auto end() const { return std::rend(_iterable); }
};
 
template<typename T>
reverse(T&& v) -> reverse<decltype(std::forward<T>(v))>;
 
//Usage:
void foo(int);
std::vector<int> make_vec();
 
void test_lvalue(std::vector<int>& lvalue) {
    for (auto i : reverse(lvalue)) {
        foo(i);
    }
}
 
 
void test_rvalue() {
    for (auto i : reverse(make_vec())) {
        foo(i);
    }
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  • Yuizcko icon
    05/18/26 01:01:39 PM UTC
    text |

    0 B

    |

    0 👍

    /

    0 👎

    Best t33n active cpx link daily updates!
     Copy and paste the link in a new browser tab and then hit enter!
     https://crazyporn.xxx/members/157354/?asgtbndr=1&play=true&spon=adworld&zone=400