n=2
template <unsigned n>
struct is_prime {
static bool const value = (n == 2) ? true : is_prime_compute<n - 1, n>::value;
};
Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!
Потому что инстанцирование всегда выполняется, вроде для того что ты хочешь надо юзать std::conditional
скомпилировать обе стороны выражения всё равно нужно
И юзай не const а constexpr
в задании он заблокирован
Вообщем юзай std::conditional либо диспатч условие явно на две разные специализации
вообще самый адекватный вариант этого - специализация, там не будет рекурсии(т.к. она оборвется)
а как мне присвоить тип к переменной bool?
Тебе надо через std::integral_constant прогать, твой класс должен наследоваться от std::integral_constant<bool, true> или std::integral_constant<bool, false>
это true/false_type
Обсуждают сегодня