aboutsummaryrefslogtreecommitdiff
path: root/src/common/Utilities/advstd.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/Utilities/advstd.h')
-rw-r--r--src/common/Utilities/advstd.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/common/Utilities/advstd.h b/src/common/Utilities/advstd.h
index d9776b02acb..9663bd91992 100644
--- a/src/common/Utilities/advstd.h
+++ b/src/common/Utilities/advstd.h
@@ -112,12 +112,13 @@ namespace advstd
template <typename T1, typename T2>
constexpr std::enable_if_t<advstd::is_unsigned_v<T1> && advstd::is_unsigned_v<T2>, std::common_type_t<T1, T2>> gcd(T1 _m, T2 _n)
{
- std::common_type_t<T1, T2> n = _n, m = _m;
+ using T = std::common_type_t<T1, T2>;
+ T n=_n, m=_m, o;
while (n)
{
- std::swap(m,n);
- if (m <= n)
- n %= m;
+ o = m;
+ m = n;
+ n = o%n;
}
return m;
}