Size: a a a

2020 October 20

D

Danya in pro.cxx
Но вдруг я чего-то не знал
источник

W

Wild_Wind in pro.cxx
Неа, шаблонов в dll не существует. По крайне мере, в известных мне имплементация dll.
источник

D

Danya in pro.cxx
Danya
Наверное только макросом
#define RUN_ONCE(pattern) run_once<pattern>()
Хотя нет, фигня какая-то
Но кажется что что-то из этого можно выжать
источник

D

Danya in pro.cxx
Anton Glukhov
int run_once(pattern_t p); Вот так думал. А уже в C++ куске выбирать и подставлять объект как-то
А Си какого стандарта?
источник

AG

Anton Glukhov in pro.cxx
Danya
А Си какого стандарта?
99
источник

D

Danya in pro.cxx
Anton Glukhov
99
Печально
источник

D

Danya in pro.cxx
С inline функциями можно было бы развернуться
источник

AG

Anton Glukhov in pro.cxx
Danya
С inline функциями можно было бы развернуться
можно поподробнее?
источник

D

Danya in pro.cxx
Anton Glukhov
можно поподробнее?
Через 15 мин, надо ноут включить
источник

AG

Anton Glukhov in pro.cxx
template <std::size_t SIZE>
int run_once(const Pattern<SIZE> &p);

Ну даже если забить на С и работать только с С++. Это же получается что оно будет генерить куча функций из-за того что шаблон с параметром. Не очень круто, потому что код для микроконтроллера
источник

AG

Anton Glukhov in pro.cxx
Я бы ожидал какого-нибудь “полиморфизма” относительно этого
источник

D

Danya in pro.cxx
Зато
а) они будут оптимизироваться отдельно под каждый случай
б) если они небольшие, вариант инлайнинга вполне вероятен
источник

D

Danya in pro.cxx
Есть же в компиляторах оптимизации на размер бинарника
источник

AG

Anton Glukhov in pro.cxx
ну это правда. они не большие 🙂
источник

D

Danya in pro.cxx
можно конечно ещё попросить сделать force inline, но не уверен, что это хороший вариант
источник

AG

Anton Glukhov in pro.cxx
Danya
Есть же в компиляторах оптимизации на размер бинарника
думал как раз для этого куска использовать О3, потому что все выполняеся в прерываниях
источник

D

Danya in pro.cxx
Anton Glukhov
думал как раз для этого куска использовать О3, потому что все выполняеся в прерываниях
Там вроде есть -Os, который максимально бинарник маленьким делает
источник

D

Danya in pro.cxx
-O3 если много проинлайнит, может как раз раздуть бинарник
источник

ПК

Побитый Кирпич... in pro.cxx
Anton Glukhov
думал как раз для этого куска использовать О3, потому что все выполняеся в прерываниях
оптимизации лучше применять для всей программы одинаково. Иначе если собрать inline или шаблонную функцию с разными флагами, то можно получить UB
источник

AG

Anton Glukhov in pro.cxx
ну да да, я просто хотел именно заоптимизировать под скорость выполнения
источник