I just discovered that at one point, the C++11 draft had std::begin
/std::end
overloads for std::pair
that allowed treating a pair of iterators as a range suitable for use in a range-based for loop (N3126, section 20.3.5.5), but this has since been removed.
Does anyone know why it was removed?
I find the removal very unfortunate, because it seems there is no other way to treat a pair of iterators as a range. Indeed:
std::pair
does not have begin/end member functionsstd::pair
in general is namespace stdstd::begin
/std::end
for std::pair
ourselvesstd::begin
/std::end
for std::pair
(because the specialization would have to be partial and that's not allowed for functions)Is there some other way that I am missing?