Здравствуйте, kov_serg, Вы писали:
_>Проблема в том что для first class citizen такой проблемы не должно быть
_>_>auto x=[]{ std::cout<<"x\n"; };
_>auto y=[]{ std::cout<<"y\n"; };
_>auto z=[]{ std::cout<<"z\n"; };
_>typedef decltype(x) t;
_>void foo(t); foo(x); foo(y); foo(z);
_>t a[]={x,y,z};
_>
Я уже ответил, массив различных лямбда выражений не существует в С++, они ничем не связаны. Хочешь массив, объявляй массив указателей на функцию и приводи к ним лямбда выражения без захвата.