Index: view/reverse_view/reverse_view.hpp =================================================================== --- view/reverse_view/reverse_view.hpp (revision 74778) +++ view/reverse_view/reverse_view.hpp (working copy) @@ -45,9 +45,13 @@ typedef typename result_of::size::type size; BOOST_STATIC_ASSERT(( - is_base_of< - bidirectional_traversal_tag - , typename traits::category_of::type>::value)); + is_base_of + < + bidirectional_traversal_tag, + typename traits::category_of::type + >::value || + traits::is_associative< Sequence >::value + )); reverse_view(Sequence& in_seq) : seq(in_seq) Index: view/reverse_view/reverse_view_iterator.hpp =================================================================== --- view/reverse_view/reverse_view_iterator.hpp (revision 74778) +++ view/reverse_view/reverse_view_iterator.hpp (working copy) @@ -39,7 +39,9 @@ BOOST_STATIC_ASSERT(( is_base_of< bidirectional_traversal_tag - , category>::value)); + , category>::value || + traits::is_associative::value + )); reverse_view_iterator(First const& in_first) : first(converter::call(in_first)) {}