Сообщение 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>>А в чём проблема?
АШ>Все же здесь есть некоторое лукавство
Всё легально, лямбду можно копировать в переменную того же типа.
И даже в теории конструкция может быть полезна для лямбд с захватом по значению: у элементов может быть разное состояние.
AG>>А в чём проблема?
АШ>Все же здесь есть некоторое лукавство
Всё легально, лямбду можно копировать в переменную того же типа.
И даже в теории конструкция может быть полезна для лямбд с захватом по значению: у элементов может быть разное состояние.
Re[5]: lambda являются first class citizens?
Здравствуйте, Анатолий Широков, Вы писали:
AG>>А в чём проблема?
АШ>Все же здесь есть некоторое лукавство
Всё легально, лямбду можно копировать в переменную того же типа.
И даже в теории конструкция может быть полезна для лямбд с захватом по значению: у элементов может быть разное состояние.
АШ>Массив лямбд с одинаковой сигнатурой функционального оператора невозможен
Ну это да, разные лямбды — разные типы.
Но почему массив из одной и той же лябмды не считается?
Те же массивы объектов работают только если это один и тот же класс, т.е. нельзя:
AG>>А в чём проблема?
АШ>Все же здесь есть некоторое лукавство
Всё легально, лямбду можно копировать в переменную того же типа.
И даже в теории конструкция может быть полезна для лямбд с захватом по значению: у элементов может быть разное состояние.
АШ>Массив лямбд с одинаковой сигнатурой функционального оператора невозможен
Ну это да, разные лямбды — разные типы.
Но почему массив из одной и той же лябмды не считается?
Те же массивы объектов работают только если это один и тот же класс, т.е. нельзя:
class X{};
class Y{};
decltype(X) a[] = { X{}, Y{} };