1
0
Fork 0

disable unary minus when the type is not signed

silent warning C4146 on msvc
This commit is contained in:
wwylele 2015-11-12 17:19:02 +02:00
parent 161be512fd
commit 8de154893c
1 changed files with 4 additions and 0 deletions

View File

@ -32,6 +32,7 @@
#pragma once #pragma once
#include <cmath> #include <cmath>
#include <type_traits>
namespace Math { namespace Math {
@ -90,6 +91,7 @@ public:
{ {
x-=other.x; y-=other.y; x-=other.x; y-=other.y;
} }
template<class = typename std::enable_if<std::is_signed<T>::value>::type>
Vec2<decltype(-T{})> operator -() const Vec2<decltype(-T{})> operator -() const
{ {
return MakeVec(-x,-y); return MakeVec(-x,-y);
@ -220,6 +222,7 @@ public:
{ {
x-=other.x; y-=other.y; z-=other.z; x-=other.x; y-=other.y; z-=other.z;
} }
template<class = typename std::enable_if<std::is_signed<T>::value>::type>
Vec3<decltype(-T{})> operator -() const Vec3<decltype(-T{})> operator -() const
{ {
return MakeVec(-x,-y,-z); return MakeVec(-x,-y,-z);
@ -390,6 +393,7 @@ public:
{ {
x-=other.x; y-=other.y; z-=other.z; w-=other.w; x-=other.x; y-=other.y; z-=other.z; w-=other.w;
} }
template<class = typename std::enable_if<std::is_signed<T>::value>::type>
Vec4<decltype(-T{})> operator -() const Vec4<decltype(-T{})> operator -() const
{ {
return MakeVec(-x,-y,-z,-w); return MakeVec(-x,-y,-z,-w);