Variável e divisão Constexpr
Estou tentando avaliar essa expressão simples em tempo de compilação usando o novo recurso constexpr do C ++ 11:
template <int a, int b>
class Test
{
static constexpr double c = a / b;
};
Mas aqui está o que Clang continua me dizendo:
Constexpr variable 'c' must be initialized by a constant expression
O estranho é que o seguinte compila bem:
template <int a, int b>
class Test
{
static constexpr double c = a / 2.f;
};
Vocês têm alguma idéia de por que a / b não é uma expressão constante, e como eu poderia avaliar isso em tempo de compilação?
Usando o compilador Clang com -std = c ++ 1y e -stdlib = libc ++
Atualizar
O exemplo a seguir causa o erro com o código original:
Test<10,0> test1 ;
enquanto:
Test<10,1> test1 ;
não.