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 constexpr std::enable_if_t && advstd::is_unsigned_v, std::common_type_t> gcd(T1 _m, T2 _n) { - std::common_type_t n = _n, m = _m; + using T = std::common_type_t; + 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; }