1 #ifndef PYTHONIC_INCLUDE_BUILTIN_REVERSED_HPP 2 #define PYTHONIC_INCLUDE_BUILTIN_REVERSED_HPP 3 4 #include "pythonic/include/utils/functor.hpp" 5 6 PYTHONIC_NS_BEGIN 7 8 namespace builtins 9 { 10 11 namespace details 12 { 13 template <class Iterable> 14 struct reversed { 15 16 using value_type = typename Iterable::value_type; 17 using iterator = typename Iterable::reverse_iterator; 18 using const_iterator = typename Iterable::const_reverse_iterator; 19 20 Iterable iterable; 21 22 reversed(); 23 reversed(Iterable const &iterable); 24 iterator begin(); 25 iterator end(); 26 const_iterator begin() const; 27 const_iterator end() const; 28 }; 29 } 30 31 template <class Iterable> 32 details::reversed<Iterable> reversed(Iterable const &iterable); 33 34 DEFINE_FUNCTOR(pythonic::builtins, reversed); 35 } 36 PYTHONIC_NS_END 37 38 #endif 39