以下の通り
// 関数内関数イディオム void inner_function_idiom() { struct local { static void square(int x) { std::cout << x * x << std::endl; } }; typedef std::vectorvecint; vecint vi; vi.push_back(1); vi.push_back(2); std::for_each(vi.begin(), vi.end(), local::square); }