Как назначить лямбда в качестве аргумента по умолчанию? Я хотел бы сделать это:
int foo(int i, std::function<int(int)> f = [](int x) -> int { return x / 2; })
{
return f(i);
}
но мой компилятор (g++ 4.6 на Mac OS X) жалуется:
error: local variable 'x' may not appear in this context
ИЗМЕНИТЬ: В самом деле, это была ошибка компилятора. Вышеприведенный код отлично работает с последней версией gcc (4.7-20120225).