decltypeした型のメンバを使用する機能は、GCCでは4.7から使用できるようになったようです。備忘記。
#include <iostream> #include <map> #include <boost/range/algorithm/for_each.hpp> int main() { const std::map<std::string, int> m = { {"Alice", 16}, {"Bob", 32}, {"Carol", 23} }; boost::for_each(m, [](decltype(m)::const_reference x) { std::cout << x.first << ", " << x.second << std::endl; }); }
Alice, 16 Bob, 32 Carol, 23