Size: a a a

2020 March 03

PZ

Pavel Zhigulin in pro.cxx
Спасибо)
источник

I

Ioann_V in pro.cxx
Серж
и таг
Не делал, но думаю, так можно. Если в начало вставлять заголовок, да. Но будет ли это этапом компиляции...
источник

I

Ioann_V in pro.cxx
Да и в чем Шаблоны ограничены, не понятно. Шаблоны это не про рефлексию же...
источник

AN

Alexander N in pro.cxx
Я помню по фану писал кодогенерацию для своих пакетов(сетевых), но пришлось сделать грязь типа
#define DEFINE_PACKET(name) struct name {
#define DEFINE_FIELD(type, name) type name;
...
#define END_PACKET };
источник

AN

Alexander N in pro.cxx
Фу, грязь
источник

AN

Alexander N in pro.cxx
Не надо говорить про protobufs)
источник

AN

Alexander N in pro.cxx
Он ваще кодогенерит как я понял на python
источник

PK

Pavel Kazakov in pro.cxx
Ioann_V
Да и в чем Шаблоны ограничены, не понятно. Шаблоны это не про рефлексию же...
при чем здесь рефлексия? шаблоны в текущем виде используются, потому что году так в 94 один инженер Сименс написал хак, который печатал простые числа с их помощью... и понеслась)
уж даже не буду рассказывать как удобно с тайплистами жить (ну и с index_sequence тоже, разумеется) -- все промежуточные инстанцирования ждут в памяти, пока компиляция не завершится, еще офигенно удобно и интуитивно понятно как ограничивать инстанцирования))
источник

PK

Pavel Kazakov in pro.cxx
это разросшийся узаконенный хак вместо нормального инструмента; сфинаю еще можно помянуть в этом контексте -- или это тоже works as intended?))
источник

I

Ioann_V in pro.cxx
я вижу в этом хороший, нормальный себе инструмент.
источник

PK

Pavel Kazakov in pro.cxx
не буду переубеждать, только своим взглядом поделился
источник

AN

Alexander N in pro.cxx
И они породили вещи типа CRTP
источник

PK

Pavel Kazakov in pro.cxx
Alexander N
И они породили вещи типа CRTP
... которое даже понимают неправильно часто :) принимают за него параметризованное наследование и лепят эти четыре буквы
источник

I

Ioann_V in pro.cxx
CRTP, это же паттерн проектирования ...
источник

PK

Pavel Kazakov in pro.cxx
это паттерн
источник

AN

Alexander N in pro.cxx
Я так с ним ни хрена и не понял)
источник

I

Ioann_V in pro.cxx
Pavel Kazakov
это паттерн
ну, вот, а паттерны, это не всегда путь к истине
источник

АК

Александр Караев in pro.cxx
Pavel Kazakov
... которое даже понимают неправильно часто :) принимают за него параметризованное наследование и лепят эти четыре буквы
параметризованное классом наследника наследование, что в корне меняет ситуацию.

или кто-то принимает template <class T> struct A : B<T> {} за CRTP?
источник

PK

Pavel Kazakov in pro.cxx
Ioann_V
ну, вот, а паттерны, это не всегда путь к истине
а вот тут согласен) *тихонько уходит работать*
источник

AN

Alexander N in pro.cxx
Я так понял, что например static_cast<T*>(this)->implementation(); вызывает метод наследника
источник