diff options
Diffstat (limited to 'src/corelib/kernel/qmath.h')
-rw-r--r-- | src/corelib/kernel/qmath.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/corelib/kernel/qmath.h b/src/corelib/kernel/qmath.h index 57314901e8..e7b6ab9c0e 100644 --- a/src/corelib/kernel/qmath.h +++ b/src/corelib/kernel/qmath.h @@ -233,6 +233,17 @@ Q_DECL_CONSTEXPR inline double qDegreesToRadians(double degrees) return degrees * (M_PI / 180); } +Q_DECL_CONSTEXPR inline long double qDegreesToRadians(long double degrees) +{ + return degrees * (M_PI / 180); +} + +template <typename T, std::enable_if_t<std::is_integral_v<T>, bool> = true> +Q_DECL_CONSTEXPR inline double qDegreesToRadians(T degrees) +{ + return qDegreesToRadians(static_cast<double>(degrees)); +} + Q_DECL_CONSTEXPR inline float qRadiansToDegrees(float radians) { return radians * float(180/M_PI); @@ -243,6 +254,15 @@ Q_DECL_CONSTEXPR inline double qRadiansToDegrees(double radians) return radians * (180 / M_PI); } +Q_DECL_CONSTEXPR inline long double qRadiansToDegrees(long double radians) +{ + return radians * (180 / M_PI); +} + +// A qRadiansToDegrees(Integral) overload isn't here; it's extremely +// questionable that someone is manipulating quantities in radians +// using integral datatypes... + namespace QtPrivate { constexpr inline quint32 qConstexprNextPowerOfTwo(quint32 v) { v |= v >> 1; |