1010# include " _swizzle_func.hpp"
1111#endif
1212#include < cstddef>
13+ #include " vec_common_operators.hpp"
1314
1415namespace glm
1516{
@@ -104,18 +105,8 @@ namespace glm
104105 // -- Conversion vector constructors --
105106
106107 // / Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
107- template <typename U, qualifier P>
108- GLM_CTOR_DECL GLM_EXPLICIT vec (vec<2 , U, P> const & v);
109- // / Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
110- template <typename U, qualifier P>
111- GLM_CTOR_DECL GLM_EXPLICIT vec (vec<3 , U, P> const & v);
112- // / Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
113- template <typename U, qualifier P>
114- GLM_CTOR_DECL GLM_EXPLICIT vec (vec<4 , U, P> const & v);
115-
116- // / Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
117- template <typename U, qualifier P>
118- GLM_CTOR_DECL GLM_EXPLICIT vec (vec<1 , U, P> const & v);
108+ template <length_t L,typename U, qualifier P>
109+ GLM_CTOR_DECL GLM_EXPLICIT vec (vec<L, U, P> const & v);
119110
120111 // -- Swizzle constructors --
121112/*
@@ -154,8 +145,6 @@ namespace glm
154145
155146 GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec<1 , T, Q> & operator ++();
156147 GLM_FUNC_DISCARD_DECL GLM_CONSTEXPR vec<1 , T, Q> & operator --();
157- GLM_FUNC_DECL GLM_CONSTEXPR vec<1 , T, Q> operator ++(int );
158- GLM_FUNC_DECL GLM_CONSTEXPR vec<1 , T, Q> operator --(int );
159148
160149 // -- Unary bit operators --
161150
@@ -187,9 +176,6 @@ namespace glm
187176
188177 // -- Unary operators --
189178
190- template <typename T, qualifier Q>
191- GLM_FUNC_DECL GLM_CONSTEXPR vec<1 , T, Q> operator +(vec<1 , T, Q> const & v);
192-
193179 template <typename T, qualifier Q>
194180 GLM_FUNC_DECL GLM_CONSTEXPR vec<1 , T, Q> operator -(vec<1 , T, Q> const & v);
195181
@@ -198,9 +184,6 @@ namespace glm
198184 template <typename T, qualifier Q>
199185 GLM_FUNC_DECL GLM_CONSTEXPR vec<1 , T, Q> operator +(vec<1 , T, Q> const & v, T scalar);
200186
201- template <typename T, qualifier Q>
202- GLM_FUNC_DECL GLM_CONSTEXPR vec<1 , T, Q> operator +(T scalar, vec<1 , T, Q> const & v);
203-
204187 template <typename T, qualifier Q>
205188 GLM_FUNC_DECL GLM_CONSTEXPR vec<1 , T, Q> operator +(vec<1 , T, Q> const & v1, vec<1 , T, Q> const & v2);
206189
@@ -216,9 +199,6 @@ namespace glm
216199 template <typename T, qualifier Q>
217200 GLM_FUNC_DECL GLM_CONSTEXPR vec<1 , T, Q> operator *(vec<1 , T, Q> const & v, T scalar);
218201
219- template <typename T, qualifier Q>
220- GLM_FUNC_DECL GLM_CONSTEXPR vec<1 , T, Q> operator *(T scalar, vec<1 , T, Q> const & v);
221-
222202 template <typename T, qualifier Q>
223203 GLM_FUNC_DECL GLM_CONSTEXPR vec<1 , T, Q> operator *(vec<1 , T, Q> const & v1, vec<1 , T, Q> const & v2);
224204
@@ -243,27 +223,18 @@ namespace glm
243223 template <typename T, qualifier Q>
244224 GLM_FUNC_DECL GLM_CONSTEXPR vec<1 , T, Q> operator &(vec<1 , T, Q> const & v, T scalar);
245225
246- template <typename T, qualifier Q>
247- GLM_FUNC_DECL GLM_CONSTEXPR vec<1 , T, Q> operator &(T scalar, vec<1 , T, Q> const & v);
248-
249226 template <typename T, qualifier Q>
250227 GLM_FUNC_DECL GLM_CONSTEXPR vec<1 , T, Q> operator &(vec<1 , T, Q> const & v1, vec<1 , T, Q> const & v2);
251228
252229 template <typename T, qualifier Q>
253230 GLM_FUNC_DECL GLM_CONSTEXPR vec<1 , T, Q> operator |(vec<1 , T, Q> const & v, T scalar);
254231
255- template <typename T, qualifier Q>
256- GLM_FUNC_DECL GLM_CONSTEXPR vec<1 , T, Q> operator |(T scalar, vec<1 , T, Q> const & v);
257-
258232 template <typename T, qualifier Q>
259233 GLM_FUNC_DECL GLM_CONSTEXPR vec<1 , T, Q> operator |(vec<1 , T, Q> const & v1, vec<1 , T, Q> const & v2);
260234
261235 template <typename T, qualifier Q>
262236 GLM_FUNC_DECL GLM_CONSTEXPR vec<1 , T, Q> operator ^(vec<1 , T, Q> const & v, T scalar);
263237
264- template <typename T, qualifier Q>
265- GLM_FUNC_DECL GLM_CONSTEXPR vec<1 , T, Q> operator ^(T scalar, vec<1 , T, Q> const & v);
266-
267238 template <typename T, qualifier Q>
268239 GLM_FUNC_DECL GLM_CONSTEXPR vec<1 , T, Q> operator ^(vec<1 , T, Q> const & v1, vec<1 , T, Q> const & v2);
269240
@@ -293,9 +264,6 @@ namespace glm
293264 template <typename T, qualifier Q>
294265 GLM_FUNC_DECL GLM_CONSTEXPR bool operator ==(vec<1 , T, Q> const & v1, vec<1 , T, Q> const & v2);
295266
296- template <typename T, qualifier Q>
297- GLM_FUNC_DECL GLM_CONSTEXPR bool operator !=(vec<1 , T, Q> const & v1, vec<1 , T, Q> const & v2);
298-
299267 template <qualifier Q>
300268 GLM_FUNC_DECL GLM_CONSTEXPR vec<1 , bool , Q> operator &&(vec<1 , bool , Q> const & v1, vec<1 , bool , Q> const & v2);
301269
0 commit comments