Код: Выделить всё
struct s {
s(int) {}
#if defined(DEBUG) || (defined(UNIT_TEST) && !defined(UNIT_TEST_NO_DEBUG_FEATURES))
s(int, const char*) {};
#endif
};
< /code>
Затем в каком-то общем коде утилиты я выбираю один из них: < /p>
void test() {
#if defined(DEBUG) || (defined(UNIT_TEST) && !defined(UNIT_TEST_NO_DEBUG_FEATURES))
s{ 10, "test" };
#else
s{ 10 };
#endif
}
void test() {
if constexpr(std::is_constructible_v) {
s{ 10, "test" };
} else {
s{ 10 };
}
}
< /code>
Запустите его на Godbolt. Есть ли другой способ достичь этого? Я попытался ввести какой -то фальшивый шаблон шаблона.>
Подробнее здесь: https://stackoverflow.com/questions/797 ... uctor-call
Мобильная версия