Constexpr variable y división
Estoy tratando de evaluar esta expresión simple en tiempo de compilación usando la nueva función constexpr de C ++ 11:
template <int a, int b>
class Test
{
static constexpr double c = a / b;
};
Pero esto es lo que Clang me sigue diciendo:
Constexpr variable 'c' must be initialized by a constant expression
Lo extraño es que lo siguiente se compila bien:
template <int a, int b>
class Test
{
static constexpr double c = a / 2.f;
};
¿Tienen alguna idea de por qué a / b no es una expresión constante, y cómo podría evaluar esto en tiempo de compilación?
Uso del compilador de Clang con -std = c ++ 1y y -stdlib = libc ++
Actualizar
El siguiente ejemplo causa el error con el código original:
Test<10,0> test1 ;
mientras:
Test<10,1> test1 ;
no.