I think you can also do MyMap::iterator::reference it .
auto f = [](MyMap::iterator::reference it) {std::cout << it.first + it.second << std::endl; }; std::for_each(mymap.begin(), mymap.end(), f);