Size: a a a

2020 October 20

AG

Anton Glukhov in pro.cxx
но мне надо в эту сишную функицю передать параметр, какой pattern взять. блин это прям дублирование получается
источник

ПК

Побитый Кирпич... in pro.cxx
Anton Glukhov
ну т.е. надо писать раппер, который принимает например классический enum. правильно?
ну енам будет рантаймовым значением, ты его в шаблон не сунешь если ты про это
источник

ПК

Побитый Кирпич... in pro.cxx
Anton Glukhov
но мне надо в эту сишную функицю передать параметр, какой pattern взять. блин это прям дублирование получается
Придётся на рантайм коде писать, Си не умеет в compile time
источник

АК

Александр Караев... in pro.cxx
Danya
Можно сделать обёртку
template <typename T>
struct foo_trait {
 constexpr static bool value = foo_concept<T>;
};
Не понял, как это поможет
источник

AG

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

ПК

Побитый Кирпич... in pro.cxx
Anton Glukhov
но мне надо в эту сишную функицю передать параметр, какой pattern взять. блин это прям дублирование получается
То есть размер будет не шаблонным параметром а параметром  конструктора
источник

ПК

Побитый Кирпич... in pro.cxx
Anton Glukhov
int run_once(pattern_t p); Вот так думал. А уже в C++ куске выбирать и подставлять объект как-то
Ну смотря что ты  хочешь дальше делать там можно наверно что то придумать чтоб в шаблоны выйти, но в общем случае будет тяжко
источник

D

Danya in pro.cxx
Побитый Кирпич
То есть размер будет не шаблонным параметром а параметром  конструктора
template <unref<foo_trait> T>
источник

D

Danya in pro.cxx
Это был ответ не на основной вопрос
источник

AG

Anton Glukhov in pro.cxx
C++17 если что
источник

D

Danya in pro.cxx
Danya
Это был ответ не на основной вопрос
Я над основным ещё думаю
источник

АК

Александр Караев... in pro.cxx
Danya
Можно сделать обёртку
template <typename T>
struct foo_trait {
 constexpr static bool value = foo_concept<T>;
};
Сделать обёртку над концептом, чтобы она стала трейтом, а его уже пропихивать в шаблонный шаблонный параметр?
Идея хорошая, но для каждого концепта по обёртке - это всё ещё много
источник

ПК

Побитый Кирпич... in pro.cxx
Danya
template <unref<foo_trait> T>
Это не мне
источник

D

Danya in pro.cxx
Побитый Кирпич
Это не мне
Да, я уже понял, мискликнул
источник

АК

Александр Караев... in pro.cxx
Побитый Кирпич
Это не мне
Я понял, это мне :)
источник

D

Danya in pro.cxx
Александр Караев
Сделать обёртку над концептом, чтобы она стала трейтом, а его уже пропихивать в шаблонный шаблонный параметр?
Идея хорошая, но для каждого концепта по обёртке - это всё ещё много
Можно макросом генерацию зафигачить :)))
источник

D

Danya in pro.cxx
Шаблоны можно в DLL?
источник

W

Wild_Wind in pro.cxx
Danya
Шаблоны можно в DLL?
Только их инстанс.
источник

D

Danya in pro.cxx
Побитый Кирпич
Ну смотря что ты  хочешь дальше делать там можно наверно что то придумать чтоб в шаблоны выйти, но в общем случае будет тяжко
Наверное только макросом
#define RUN_ONCE(pattern) run_once<pattern>()
источник

D

Danya in pro.cxx
Wild_Wind
Только их инстанс.
Ну это понятно
источник