Specialize qMulOverflow<2>(n) as qAddOverflow(n, n)

Addition is always more efficient than multiplication.

Pick-to: 6.4
Task-number: QTBUG-104972
Change-Id: Ib945e7df88562a2f4aea00aa319ff837191b8df2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
This commit is contained in:
Marc Mutz 2022-09-08 16:46:13 +02:00
parent 542f837fa2
commit 4b5b87c27b

View File

@ -317,6 +317,8 @@ template <typename T, T V2> bool qMulOverflow(T v1, std::integral_constant<T, V2
template <auto V2, typename T> bool qMulOverflow(T v1, T *r)
{
if constexpr (V2 == 2)
return qAddOverflow(v1, v1, r);
return qMulOverflow(v1, std::integral_constant<T, V2>{}, r);
}