summaryrefslogtreecommitdiff
path: root/boost/bimap/views/vector_map_view.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/bimap/views/vector_map_view.hpp')
-rw-r--r--boost/bimap/views/vector_map_view.hpp40
1 files changed, 37 insertions, 3 deletions
diff --git a/boost/bimap/views/vector_map_view.hpp b/boost/bimap/views/vector_map_view.hpp
index 1837c2797c..d8fdd8d82b 100644
--- a/boost/bimap/views/vector_map_view.hpp
+++ b/boost/bimap/views/vector_map_view.hpp
@@ -41,7 +41,7 @@ class vector_map_view
public BOOST_BIMAP_MAP_VIEW_CONTAINER_ADAPTOR(
vector_map_adaptor,
Tag,BimapType,
- reverse_iterator_type_by, const_reverse_iterator_type_by
+ reverse_map_view_iterator, const_reverse_map_view_iterator
),
public ::boost::bimaps::detail::
@@ -50,7 +50,7 @@ class vector_map_view
typedef BOOST_BIMAP_MAP_VIEW_CONTAINER_ADAPTOR(
vector_map_adaptor,
Tag,BimapType,
- reverse_iterator_type_by, const_reverse_iterator_type_by
+ reverse_map_view_iterator, const_reverse_map_view_iterator
) base_;
@@ -75,7 +75,41 @@ class vector_map_view
this->base() = v.base();
return *this;
}
+
+ BOOST_DEDUCED_TYPENAME base_::const_reference
+ operator[](BOOST_DEDUCED_TYPENAME base_::size_type n) const
+ {
+ return this->template functor<BOOST_DEDUCED_TYPENAME base_::value_from_base>()(
+ this->base().operator[](n)
+ );
+ }
+
+ BOOST_DEDUCED_TYPENAME base_::const_reference
+ at(BOOST_DEDUCED_TYPENAME base_::size_type n) const
+ {
+ return this->template functor<BOOST_DEDUCED_TYPENAME base_::value_from_base>()(
+ this->base().at(n)
+ );
+ }
+
+ BOOST_DEDUCED_TYPENAME base_::reference
+ operator[](BOOST_DEDUCED_TYPENAME base_::size_type n)
+ {
+ return this->template functor<BOOST_DEDUCED_TYPENAME base_::value_from_base>()(
+ const_cast<BOOST_DEDUCED_TYPENAME base_::base_type::value_type &>(
+ this->base().operator[](n)
+ ));
+ }
+ BOOST_DEDUCED_TYPENAME base_::reference
+ at(BOOST_DEDUCED_TYPENAME base_::size_type n)
+ {
+ return this->template functor<BOOST_DEDUCED_TYPENAME base_::value_from_base>()(
+ const_cast<BOOST_DEDUCED_TYPENAME base_::base_type::value_type &>(
+ this->base().at(n)
+ ));
+ }
+
BOOST_BIMAP_VIEW_ASSIGN_IMPLEMENTATION(base_)
BOOST_BIMAP_VIEW_FRONT_BACK_IMPLEMENTATION(base_)
@@ -273,7 +307,7 @@ typedef BOOST_DEDUCED_TYPENAME MAP_VIEW::TYPENAME \
/*===========================================================================*/
#define BOOST_BIMAP_MAP_VIEW_EXTRA_TYPEDEFS_BODY(MAP_VIEW,SIDE) \
BOOST_BIMAP_MAP_VIEW_EXTRA_TYPEDEF(MAP_VIEW,SIDE,reverse_iterator) \
- BOOST_BIMAP_MAP_VIEW_EXTRA_TYPEDEF(MAP_VIEW,SIDE,const_reverse_iterator) \
+ BOOST_BIMAP_MAP_VIEW_EXTRA_TYPEDEF(MAP_VIEW,SIDE,const_reverse_iterator)
/*===========================================================================*/
namespace detail {