Сообщение 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, который может быть передан в функцию, возвращен из функции, присвоены переменной. Например, код
превратится
МР>Привет!
МР>Скажите, пожалуйста, лямбда выражения в 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, который может быть передан в функцию, возвращен из функции, присвоен переменной. Например, код
превратится
МР>Привет!
МР>Скажите, пожалуйста, лямбда выражения в C++ являются first class citizens?
Да, посколько результат лямбда выражения это объект (функтор, функциональный объект) типа closure type, который может быть передан в функцию, возвращен из функции, присвоен переменной. Например, код
auto a = [](int){};
a(10);
превратится
struct __closure_unique_type {
void operator()(int) {}
};
...
__closure_unique_type a;
a(10);