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

Сообщение Re: lambda являются first class citizens? от 05.05.2018 17:52

Изменено 05.05.2018 18:05 Анатолий Широков

Re: lambda являются first class citizens?
Здравствуйте, Максим Рогожин, Вы писали:

МР>Привет!

МР>Скажите, пожалуйста, лямбда выражения в C++ являются first class citizens?

Да, посколько результат лямбда выражения это объект (функтор, функциональный объект) типа closure type, который может быть передан в функцию, возвращен из функции, присвоены переменной. Например, код

auto a = [](int){};
a(10);


превратится

struct __closure_unique_type {
   void operator()(int) {}
};
...
__closure_unique_type a;
a(10);
Re: lambda являются first class citizens?
Здравствуйте, Максим Рогожин, Вы писали:

МР>Привет!

МР>Скажите, пожалуйста, лямбда выражения в C++ являются first class citizens?

Да, посколько результат лямбда выражения это объект (функтор, функциональный объект) типа closure type, который может быть передан в функцию, возвращен из функции, присвоен переменной. Например, код

auto a = [](int){};
a(10);


превратится

struct __closure_unique_type {
   void operator()(int) {}
};
...
__closure_unique_type a;
a(10);