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

Сообщение Re[6]: lambda являются first class citizens? от 06.05.2018 12:46

Изменено 06.05.2018 12:52 kov_serg

Re[6]: lambda являются first class citizens?
Здравствуйте, Анатолий Широков, Вы писали:

АШ>Я уже ответил, массив различных лямбда выражений не существует в С++, они ничем не связаны. Хочешь массив, объявляй массив указателей на функцию и приводи к ним лямбда выражения без захвата.

Причем тут чего я хочу. Я просто сказал, что это костыли, а не типы данных. Тем более не "first class citizen".
То что в C++ это сделано через жопу, я не виноват. А вы просто констатируете факт что для этих костылей нужны еще костыли в виде указателей на функцию (тут одельная песня).
Для "first class citizen" int и double я могу написать такое
struct A {
    enum { N=3 };
    int x[N]; double y[N];
    virtual void fn(int x) {}
    virtual void fn(double x) {}
};
А для лямд не могу. Поэтом этот тип данных убог и ущербен.
Re[6]: lambda являются first class citizens?
Здравствуйте, Анатолий Широков, Вы писали:

АШ>Я уже ответил, массив различных лямбда выражений не существует в С++, они ничем не связаны. Хочешь массив, объявляй массив указателей на функцию и приводи к ним лямбда выражения без захвата.

Причем тут чего я хочу. Я просто сказал, что это костыли, а не типы данных. Тем более не "first class citizen".
То что в C++ это сделано через жопу, я не виноват. А вы просто констатируете факт что для этих костылей нужны еще костыли в виде указателей на функцию (тут одельная песня).
Для "first class citizen" int и double я могу написать такое
struct A {
    enum { N=3 };
    int x[N]; double y[N];
    virtual void fn(int x) {}
    virtual void fn(double x) {}
};
А для лямд не могу. Поэтому этот тип данных убог и ущербен и никак не "first class citizen" т.к на него есть куча ограничений.