Сообщение Re[10]: lambda являются first class citizens? от 14.05.2018 20:10
Изменено 14.05.2018 20:12 kov_serg
Re[10]: lambda являются first class citizens?
Здравствуйте, _NN_, Вы писали:
_NN>Попробуем по порядку.
_NN>
_NN>
А виртуальную функцию как? А экспортировать эту функцию как, перегдужать как? То что вы привели шаблон, а не функция.
_NN>
И где?
_NN>int main()
_NN>{
_NN> auto l = f(); // assigned into a variable
_NN> return l();
_NN>}
_NN>[/c]
Assigned into variable
_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>
_NN>returned from a subroutine, or assigned into a variable
_NN>#include <iostream>
_NN>#include <memory>
_NN>using namespace std;
_NN>auto f() { return []{return 1;}; } // returned from a subroutine
[c]
auto f(int f) { if (f) return [=]{return f;}; return [=]{return f-1;}; }
И где?
_NN>int main()
_NN>{
_NN> auto l = f(); // assigned into a variable
_NN> return l();
_NN>}
_NN>[/c]
Assigned into variable
l=f(); l=f(); // не работает
_NN>Приведённые требования выполняются.
и где они выполняются?
Re[10]: lambda являются first class citizens?
Здравствуйте, _NN_, Вы писали:
_NN>Попробуем по порядку.
_NN>
_NN>
А виртуальную функцию как? А экспортировать эту функцию как, перегружать как? То что вы привели шаблон, а не функция.
_NN>
И где?
_NN> auto l = f(); // assigned into a variable
Не объявление константы, а присвоение переменной.
_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>
_NN>returned from a subroutine, or assigned into a variable
_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>Приведённые требования выполняются.
и где они выполняются?