Re[5]: lambda являются first class citizens?
От: Анатолий Широков СССР  
Дата: 06.05.18 12:01
Оценка:
Здравствуйте, 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};
_>


Я уже ответил, массив различных лямбда выражений не существует в С++, они ничем не связаны. Хочешь массив, объявляй массив указателей на функцию и приводи к ним лямбда выражения без захвата.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.