N> struct fib {
const int value = fib<N - 2>::value + fib<N - 1>::value;
};
template <> struct fib<0> {
const int value = 1 ;
};
template <> struct fib<1> {
const int value = 0;
};
int main() {
std::cout << fib<42>::value;
return 0;
}
// error: invalid use of non-static data member ‘fib<42>::value’
если все поля сделать через енум, то все скомпилится
в чем прикол?
constexpr, не const
Обсуждают сегодня