From 82d257abce4a102762e06d93ae82732923a86fb0 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sat, 18 Aug 2018 16:28:09 +0200 Subject: [PATCH] Fixed Clang warnings --- glm/detail/_swizzle.hpp | 51 +++++++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 20 deletions(-) diff --git a/glm/detail/_swizzle.hpp b/glm/detail/_swizzle.hpp index e3de65f2..87896ef4 100644 --- a/glm/detail/_swizzle.hpp +++ b/glm/detail/_swizzle.hpp @@ -54,6 +54,32 @@ namespace detail template struct _swizzle_base2 : public _swizzle_base1::value> { + struct op_equal + { + GLM_FUNC_QUALIFIER void operator() (T& e, T& t) const{ e = t; } + }; + + struct op_minus + { + GLM_FUNC_QUALIFIER void operator() (T& e, T& t) const{ e -= t; } + }; + + struct op_plus + { + GLM_FUNC_QUALIFIER void operator() (T& e, T& t) const{ e += t; } + }; + + struct op_mul + { + GLM_FUNC_QUALIFIER void operator() (T& e, T& t) const{ e *= t; } + }; + + struct op_div + { + GLM_FUNC_QUALIFIER void operator() (T& e, T& t) const{ e /= t; } + }; + + public: GLM_FUNC_QUALIFIER _swizzle_base2& operator= (const T& t) { for (int i = 0; i < N; ++i) @@ -63,43 +89,28 @@ namespace detail GLM_FUNC_QUALIFIER _swizzle_base2& operator= (vec const& that) { - struct op { - GLM_FUNC_QUALIFIER void operator() (T& e, T& t) const{ e = t; } - }; - _apply_op(that, op()); + _apply_op(that, op_equal()); return *this; } GLM_FUNC_QUALIFIER void operator -= (vec const& that) { - struct op { - GLM_FUNC_QUALIFIER void operator() (T& e, T& t) const{ e -= t; } - }; - _apply_op(that, op()); + _apply_op(that, op_minus()); } GLM_FUNC_QUALIFIER void operator += (vec const& that) { - struct op { - GLM_FUNC_QUALIFIER void operator() (T& e, T& t) const{ e += t; } - }; - _apply_op(that, op()); + _apply_op(that, op_plus()); } GLM_FUNC_QUALIFIER void operator *= (vec const& that) { - struct op { - GLM_FUNC_QUALIFIER void operator() (T& e, T& t) const{ e *= t; } - }; - _apply_op(that, op()); + _apply_op(that, op_mul()); } GLM_FUNC_QUALIFIER void operator /= (vec const& that) { - struct op { - GLM_FUNC_QUALIFIER void operator() (T& e, T& t) const{ e /= t; } - }; - _apply_op(that, op()); + _apply_op(that, op_div()); } GLM_FUNC_QUALIFIER T& operator[](size_t i)