Assume I have an iterator referencing a std::pair. It might point into a map, so first_type would be const. But it might also be a vector of pairs,
std::pair
const