Я пытаюсь использовать общую лямбду С++ 14, но столкнулся с проблемой std:: function.
#include <iostream>
#include <functional>
int main()
{
const int a = 2;
std::function<void(int)> f = [&](auto b) { std::cout << a << ", " << b << std::endl; };
f(3);
}
Это не скомпилируется с сообщением об ошибке, в котором говорится, что error: ‘a’ was not declared in this scope
.
Он работает, если я изменяю его на (int b)
.
Это ошибка? или я чего-то не хватает?
Версия GCC, которую я использую, - 4.9.2.