32 #include <boost/range.hpp>
38 template<
typename Iter,
typename Assoc,
template<
typename K,
typename V>
class PairType>
40 StlAssocIteratorAdaptor<Iter, Assoc, PairType>,
42 PairType<typename Assoc::key_type, typename Assoc::mapped_type>,
44 PairType<typename Assoc::key_type, typename Assoc::mapped_type>
49 typedef boost::iterator_adaptor<
52 PairType<typename Assoc::key_type, typename Assoc::mapped_type>,
54 PairType<typename Assoc::key_type, typename Assoc::mapped_type>
64 typename Super_t::reference dereference ()
const
66 return { this->base ().key (), this->base ().value () };
70 template<
typename Iter,
typename Assoc,
template<
typename K,
typename V>
class PairType>
71 struct StlAssocRange :
public boost::iterator_range<StlAssocIteratorAdaptor<Iter, Assoc, PairType>>
80 template<
template<
typename K,
typename V>
class PairType = std::pair,
typename Assoc>
StlAssocRange(const Assoc &assoc)
StlAssocIteratorAdaptor()=default
StlAssocRange< typename Assoc::const_iterator, Assoc, PairType > Stlize(const Assoc &assoc)
StlAssocIteratorAdaptor(const Iter &it)
friend class boost::iterator_core_access