RussianPenguin
9/1/2018 - 12:32 PM

Умножение с проверкой переполнения

Целочисленное умножение. При переполнении выбрасывается исключение

    int mul(int lhs, int rhs)
    {
        int res = lhs * rhs;
        if (res != 0 && res / lhs != rhs) {
            throw std::runtime_error("signed overflow has occured");
        }
        return res;
    }