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