boost::type_erasure::bidirectional_iterator
// In header: <boost/type_erasure/iterator.hpp> template<typename T = _self, typename Reference, typename DifferenceType> struct bidirectional_iterator : public { };