From 3adf4d2869b80d4227be6cf872b4a0486181fbe1 Mon Sep 17 00:00:00 2001 From: Neil Groves Date: Thu, 23 Dec 2010 00:56:04 +0000 Subject: [PATCH] [boost][range] - Resolution of Trac item 4905 - Implementation of boost::range::map_keys should use boost::range_reference [SVN r67423] --- include/boost/range/adaptor/map.hpp | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/include/boost/range/adaptor/map.hpp b/include/boost/range/adaptor/map.hpp index 8c39eca..ff8b97e 100755 --- a/include/boost/range/adaptor/map.hpp +++ b/include/boost/range/adaptor/map.hpp @@ -14,6 +14,7 @@ #include #include #include +#include namespace boost { @@ -25,11 +26,10 @@ namespace boost template< class Map > struct select_first { - typedef BOOST_DEDUCED_TYPENAME range_value::type pair_t; - typedef const BOOST_DEDUCED_TYPENAME pair_t::first_type& - result_type; + typedef BOOST_DEDUCED_TYPENAME range_reference::type argument_type; + typedef const BOOST_DEDUCED_TYPENAME range_value::type::first_type& result_type; - result_type operator()( const pair_t& r ) const + result_type operator()( argument_type r ) const { return r.first; } @@ -38,10 +38,10 @@ namespace boost template< class Map > struct select_second_mutable { - typedef BOOST_DEDUCED_TYPENAME range_value::type pair_t; - typedef BOOST_DEDUCED_TYPENAME pair_t::second_type& result_type; + typedef BOOST_DEDUCED_TYPENAME range_reference::type argument_type; + typedef BOOST_DEDUCED_TYPENAME range_value::type::second_type& result_type; - result_type operator()( pair_t& r ) const + result_type operator()( argument_type r ) const { return r.second; } @@ -50,11 +50,10 @@ namespace boost template< class Map > struct select_second_const { - typedef BOOST_DEDUCED_TYPENAME range_value::type pair_t; - typedef const BOOST_DEDUCED_TYPENAME pair_t::second_type& - result_type; + typedef BOOST_DEDUCED_TYPENAME range_reference::type argument_type; + typedef const BOOST_DEDUCED_TYPENAME range_value::type::second_type& result_type; - result_type operator()( const pair_t& r ) const + result_type operator()( argument_type r ) const { return r.second; }