Здравствуйте, Alexander G, Вы писали:
AG>Здравствуйте, kov_serg, Вы писали:
_>>Если да то как массив например их 3 таких лямбд задать?
AG>А в чём проблема?
AG>AG>int main(void) {
AG> auto x = []{ std::cout <<"hi\n"; };
AG> decltype(x) y[] = {x, x, x};
AG> y[1]();
AG> return 0;
AG>}
AG>
Проблема в том что для 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};
В C++ стараются сделать костылями. Именно это печалит. Что указатели на члены класса что лямбды. А перегружаемые функции с лямбдами. А если вируальную функцию захочеться? В результате таких нововедений растёт только сложность и энтропия и вместо упрощения получаем новые проблемы.
Так что это не "first class citizen" это "crutch class outlander".