Constexpr переменная и деление
Я пытаюсь оценить это простое выражение во время компиляции, используя новую функцию constexpr в C ++ 11:
template <int a, int b>
class Test
{
static constexpr double c = a / b;
};
Но вот что Clang постоянно говорит мне:
Constexpr variable 'c' must be initialized by a constant expression
Странно то, что следующее хорошо компилируется:
template <int a, int b>
class Test
{
static constexpr double c = a / 2.f;
};
Ребята, у вас есть идеи, почему a / b не является константным выражением, и как я могу оценить это во время компиляции?
Использование компилятора Clang с -std = c ++ 1y и -stdlib = libc ++
Обновить
Следующий пример вызывает ошибку с исходным кодом:
Test<10,0> test1 ;
в то время как:
Test<10,1> test1 ;
не.