Информация об изменениях

Сообщение Re[5]: lambda являются first class citizens? от 05.05.2018 18:44

Изменено 05.05.2018 19:03 Alexander G

Re[5]: lambda являются first class citizens?
Здравствуйте, Анатолий Широков, Вы писали:

AG>>А в чём проблема?


АШ>Все же здесь есть некоторое лукавство


Всё легально, лямбду можно копировать в переменную того же типа.
И даже в теории конструкция может быть полезна для лямбд с захватом по значению: у элементов может быть разное состояние.
Re[5]: lambda являются first class citizens?
Здравствуйте, Анатолий Широков, Вы писали:

AG>>А в чём проблема?


АШ>Все же здесь есть некоторое лукавство


Всё легально, лямбду можно копировать в переменную того же типа.
И даже в теории конструкция может быть полезна для лямбд с захватом по значению: у элементов может быть разное состояние.

АШ>Массив лямбд с одинаковой сигнатурой функционального оператора невозможен


Ну это да, разные лямбды — разные типы.
Но почему массив из одной и той же лябмды не считается?
Те же массивы объектов работают только если это один и тот же класс, т.е. нельзя:
class X{};
class Y{};

decltype(X) a[] = { X{}, Y{} };