diff options
-rw-r--r-- | src/common/vector_math.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/common/vector_math.h b/src/common/vector_math.h index 4928c9bf2..02688e35e 100644 --- a/src/common/vector_math.h +++ b/src/common/vector_math.h @@ -32,6 +32,7 @@ #pragma once #include <cmath> +#include <type_traits> namespace Math { @@ -90,6 +91,7 @@ public: { x-=other.x; y-=other.y; } + template<typename Q = T,class = typename std::enable_if<std::is_signed<Q>::value>::type> Vec2<decltype(-T{})> operator -() const { return MakeVec(-x,-y); @@ -220,6 +222,7 @@ public: { x-=other.x; y-=other.y; z-=other.z; } + template<typename Q = T,class = typename std::enable_if<std::is_signed<Q>::value>::type> Vec3<decltype(-T{})> operator -() const { return MakeVec(-x,-y,-z); @@ -390,6 +393,7 @@ public: { x-=other.x; y-=other.y; z-=other.z; w-=other.w; } + template<typename Q = T,class = typename std::enable_if<std::is_signed<Q>::value>::type> Vec4<decltype(-T{})> operator -() const { return MakeVec(-x,-y,-z,-w); |