Re[10]: lambda являются first class citizens?
От: kov_serg Россия  
Дата: 14.05.18 20:10
Оценка:
Здравствуйте, _NN_, Вы писали:


_NN>Попробуем по порядку.

_NN>

first-class status if it can be passed as a parameter,


_NN>
_NN>#include <iostream>
_NN>#include <memory>
_NN>using namespace std;

_NN>void f(auto) {}

_NN>int main()
_NN>{
_NN>    f([]{});
_NN>}
_NN>

А виртуальную функцию как? А экспортировать эту функцию как, перегружать как? То что вы привели шаблон, а не функция.

_NN>

returned from a subroutine, or assigned into a variable

_NN>
_NN>#include <iostream>
_NN>#include <memory>
_NN>using namespace std;

_NN>auto f() { return []{return 1;}; } // returned from a subroutine

auto f(int f) { if (f) return [=]{return f;}; return [=]{return f-1;}; }

И где?



_NN> auto l = f(); // assigned into a variable

Не объявление константы, а присвоение переменной.
 l=f(); l=f(); // не работает


_NN>Приведённые требования выполняются.

и где они выполняются?
Отредактировано 14.05.2018 20:12 kov_serg . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.