Почему я не могу создать вектор лямбда-выражений (того же типа) в C ++ 11?

Я пытался создать вектор лямбда, но потерпел неудачу:

auto ignore = [&]() { return 10; };  //1
std::vector v;     //2
v.push_back([&]() { return 100; });  //3

До строки № 2 он компилируется нормально . Но строка №3 дает ошибку компиляции :

ошибка: нет соответствующей функции для вызова 'std :: vector

> :: push_back (main () :: ) '

Мне не нужен вектор указателей на функции или вектор объектов функций. Однако вектор функциональных объектов, которые инкапсулируют реальные лямбда-выражения, мне подойдет. Возможно ли это?

83
задан einpoklum - reinstate Monica 28 May 2017 в 22:08
поделиться