25class first_of_pair_iterator :
public pair_iterator {
27 typedef typename pair_iterator::value_type::first_type value_type;
29 first_of_pair_iterator() =
default;
30 first_of_pair_iterator(
const pair_iterator &init) : pair_iterator(init) { }
32 value_type operator *() {
33 return pair_iterator::operator *().first;
43class second_of_pair_iterator :
public pair_iterator {
45 typedef typename pair_iterator::value_type::second_type value_type;
47 second_of_pair_iterator() =
default;
48 second_of_pair_iterator(
const pair_iterator &init) : pair_iterator(init) { }
50 value_type operator *() {
51 return pair_iterator::operator *().second;