Size: a a a

2021 January 26

W

Warstone in Modern::Perl
Вроде-бы плюсовые тимплейты этого не умеют
источник

OP

Oleg Pronin in Modern::Perl
Умеют
источник

W

Warstone in Modern::Perl
А покажи... Для общего образования...
источник

W

Warstone in Modern::Perl
Линком можно
источник

OP

Oleg Pronin in Modern::Perl
Только имен не будет у них
источник

W

Warstone in Modern::Perl
Э-э-э... А как тогда к ним обращаться?..
источник

OP

Oleg Pronin in Modern::Perl
Но к ним можно обращаться по номеру
источник

W

Warstone in Modern::Perl
Не... Поддерживаемось такого кода сферическим Перловиком и так хреновая... А ты еще и шаблоны плюсовые предлагешь...
источник

OP

Oleg Pronin in Modern::Perl
template <class...Args> struct Hello {
private:
   std::tuple<Args...> props;

    somefunc () {
       cout << sizeof...(Args);
       cout << std::get<0>(props);
       ...
    }


...
auto obj = new Hello<int, string, std::vector<time_t>>();
источник

W

Warstone in Modern::Perl
Ну это чит...
источник

W

Warstone in Modern::Perl
Хотя - сработает, да.
источник

OP

Oleg Pronin in Modern::Perl
Почему
источник

OP

Oleg Pronin in Modern::Perl
Они плейном лежат как если бы были обьявлены
источник

OP

Oleg Pronin in Modern::Perl
Все компайл тайм, скорость максимальна
источник

W

Warstone in Modern::Perl
А теперь можно нагенерить там-же XS интерфейсы к полям этого класса? Желательно с прямым доступом по имени.
источник

OP

Oleg Pronin in Modern::Perl
Да))
источник

W

Warstone in Modern::Perl
источник

W

Warstone in Modern::Perl
И при этом тут нету шаблонов.
источник

OP

Oleg Pronin in Modern::Perl
Блин ну почти... перечислить придется. Ибо в std::get только компайл тайм можна цифру, а механизм альясов в XS рантайм

Scalar _accessor () : ALIAS(name1=0, name2=1, ....) {
   switch (ix) {
        case 0: RETVAL = xs::out(std::get<0>(props)); break;
        case 1: RETVAL = xs::out(std::get<1>(props)); break;
   }
}

И все. Если бы в перле была норм альясинг компайл тайм то не надо было перечислять, но он через анал сделан в рантайме
источник

W

Warstone in Modern::Perl
Э-э-э... Количество name'ов так-же переменное и задается из внешнего файла. Равно как и количество переменных в классе...
Если плюсы я еще пойму, то в XS без INCLUDE_COMMAND я не знаю как решить.
источник