12inline std::optional<double>
checked_mul(
double left,
double right)
noexcept {
13 const double value = left * right;
14 if (std::isfinite(left) && std::isfinite(right) && !std::isfinite(value))
19inline std::optional<double>
checked_div(
double left,
double right)
noexcept {
20 const double value = left / right;
21 if (std::isfinite(left) && std::isfinite(right) && !std::isfinite(value))
26inline std::optional<double>
checked_add(
double left,
double right)
noexcept {
27 const double value = left + right;
28 if (std::isfinite(left) && std::isfinite(right) && !std::isfinite(value))
std::optional< double > checked_mul(double left, double right) noexcept
std::optional< double > checked_add(double left, double right) noexcept
std::optional< double > checked_div(double left, double right) noexcept