4#include "ReturnValue.h"
8 inline std::tuple<bool, quint64> mul_overflow(quint64 _a, quint64 _b)
10#if __KNOWCORE_HAS_BUILTIN(__builtin_mul_overflow)
12 if(__builtin_mul_overflow(_a, _b, &result))
16 return {
false, result};
19 quint64 result = _a * _b;
20 if(_a != 0 and _b != result / _a)
24 return {
false, result};
27 std::tuple<bool, quint64> add_overflow(quint64 _a, quint64 _b)
29#if __KNOWCORE_HAS_BUILTIN(__builtin_add_overflow)
31 if(__builtin_add_overflow(_a, _b, &result))
35 return {
false, result};
38 quint64 result = _a + _b;
43 return {
false, result};