10 inline std::tuple<bool, quint64> mul_overflow(quint64 _a, quint64 _b)
12#if __KNOWCORE_HAS_BUILTIN(__builtin_mul_overflow)
14 if(__builtin_mul_overflow(_a, _b, &result))
20 return {
false, result};
23 quint64 result = _a * _b;
24 if(_a != 0 and _b != result / _a)
28 return {
false, result};
31 std::tuple<bool, quint64> add_overflow(quint64 _a, quint64 _b)
33#if __KNOWCORE_HAS_BUILTIN(__builtin_add_overflow)
35 if(__builtin_add_overflow(_a, _b, &result))
41 return {
false, result};
44 quint64 result = _a + _b;
49 return {
false, result};