(x > 2) {
return 0;
}
return foo<(x+1)>();
}
int main () {
auto x = foo<1>();
}
Почему компилятор не справляется с таким?
Или я что-то не понимаю про шаблоны :)
ого, не знал вот этот факт про возврат... придётся % 1024 искуственный вставлять или что-то в этом духе
template<size_t x> constexpr int foo () { if constexpr (x > 2) { return 0; } else { return foo<(x+1)>(); } }
if constexpr/else
да, понял Скорее не понял почему в const{expr, eval} компилятор сам не догадается только N шаблонов инстанцировать, но опытные коллеги говорят что это не в духе С++
Обсуждают сегодня