diff -Nur original/desktop/src/optout.h modified/desktop/src/optout.h --- original/desktop/src/optout.h 2013-11-17 23:56:58.000000000 +0000 +++ modified/desktop/src/optout.h 2018-06-18 12:11:40.870542851 +0100 @@ -92,6 +92,8 @@ typedef std::vector container_type; typedef container_type::iterator iterator; typedef container_type::const_iterator const_iterator; + typedef container_type::reverse_iterator reverse_iterator; + typedef container_type::const_reverse_iterator const_reverse_iterator; typedef container_type::size_type size_type; private: @@ -134,10 +136,10 @@ const_iterator begin() const { return m_con.begin(); } iterator end() { return m_con.end(); } const_iterator end() const { return m_con.end(); } - iterator rbegin() { return m_con.rbegin(); } - const_iterator rbegin() const { return m_con.rbegin(); } - iterator rend() { return m_con.rend(); } - const_iterator rend() const { return m_con.rend(); } + reverse_iterator rbegin() { return m_con.rbegin(); } + const_reverse_iterator rbegin() const { return m_con.rbegin(); } + reverse_iterator rend() { return m_con.rend(); } + const_reverse_iterator rend() const { return m_con.rend(); } // since iterators hold Element* pointers, these functions // are just a helpful dynamic cast aid