Skip to content
Snippets Groups Projects
Commit 03efd57e authored by Jan Trávníček's avatar Jan Trávníček
Browse files

redesign reverse container adaptor

parent bb4265cb
No related branches found
No related tags found
No related merge requests found
...@@ -14,17 +14,34 @@ namespace ext { ...@@ -14,17 +14,34 @@ namespace ext {
   
template<class T> template<class T>
class reverser { class reverser {
T& m_Container; T & m_Container;
   
public: public:
reverser(T& container) : m_Container ( container ) { reverser ( T & container ) : m_Container ( container ) {
} }
   
std::reverse_iterator<typename std::conditional<std::is_const<T>::value,typename T::const_iterator,typename T::iterator>::type> begin() const { typename T::reverse_iterator begin ( ) const {
return m_Container.rbegin(); return m_Container.rbegin();
} }
   
std::reverse_iterator<typename std::conditional<std::is_const<T>::value,typename T::const_iterator,typename T::iterator>::type> end() const { typename T::reverse_iterator end ( ) const {
return m_Container.rend();
}
};
template < class T >
class reverser < const T > {
const T & m_Container;
public:
reverser ( const T & container ) : m_Container ( container ) {
}
typename T::const_reverse_iterator begin ( ) const {
return m_Container.rbegin();
}
typename T::const_reverse_iterator end ( ) const {
return m_Container.rend(); return m_Container.rend();
} }
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment