Код: Выделить всё
constexpr double d1 = 2.0 / 1.0;
const double d2 = 2.0 / 0.0;
Код: Выделить всё
constexpr double d2 = 2.0 / 0.0;
Код: Выделить всё
error: ‘(2.0e+0 / 0.0)’ is not a constant expression
Я не понимаю, почему это запрещено. Учитывая, что std::numeric_limits::is_iec559 — это constexpr, компилятор четко знает во время компиляции, внутри constexpr, разрешено ли деление на ноль. Итак, если это разрешено... почему это не разрешено в constexpr?
Подробнее здесь: https://stackoverflow.com/questions/786 ... -constexpr