15 #ifndef ITERATOR_TYPES_H 16 #define ITERATOR_TYPES_H 26 template<
class pair_iterator>
29 typedef TYPENAME pair_iterator::value_type::first_type value_type;
35 value_type operator *() {
36 return pair_iterator::operator *().first;
47 template<
class pair_iterator>
50 typedef TYPENAME pair_iterator::value_type::second_type value_type;
56 value_type operator *() {
57 return pair_iterator::operator *().second;
67 template<
class base_iterator,
class new_type>
70 typedef new_type value_type;
76 value_type operator *() {
77 return (new_type)base_iterator::operator *();
This is an iterator adaptor that converts any iterator that returns a pair (e.g.
This is an iterator adaptor that converts any iterator that returns a pair (e.g.
This is an iterator adaptor that explicitly typecasts each value returned by the base iterator to the...