36 #define VECTORIZE1_VEC(func) \ 37 template <typename T, precision P> \ 38 GLM_FUNC_QUALIFIER detail::tvec1<T, P> func( \ 39 detail::tvec1<T, P> const & v) \ 41 return detail::tvec1<T, P>( \ 45 #define VECTORIZE2_VEC(func) \ 46 template <typename T, precision P> \ 47 GLM_FUNC_QUALIFIER detail::tvec2<T, P> func( \ 48 detail::tvec2<T, P> const & v) \ 50 return detail::tvec2<T, P>( \ 55 #define VECTORIZE3_VEC(func) \ 56 template <typename T, precision P> \ 57 GLM_FUNC_QUALIFIER detail::tvec3<T, P> func( \ 58 detail::tvec3<T, P> const & v) \ 60 return detail::tvec3<T, P>( \ 66 #define VECTORIZE4_VEC(func) \ 67 template <typename T, precision P> \ 68 GLM_FUNC_QUALIFIER detail::tvec4<T, P> func( \ 69 detail::tvec4<T, P> const & v) \ 71 return detail::tvec4<T, P>( \ 78 #define VECTORIZE_VEC(func) \ 79 VECTORIZE1_VEC(func) \ 80 VECTORIZE2_VEC(func) \ 81 VECTORIZE3_VEC(func) \ 84 #define VECTORIZE1_VEC_SCA(func) \ 85 template <typename T, precision P> \ 86 GLM_FUNC_QUALIFIER detail::tvec1<T, P> func \ 88 detail::tvec1<T, P> const & x, \ 89 typename detail::tvec1<T, P>::value_type const & y \ 92 return detail::tvec1<T, P>( \ 96 #define VECTORIZE2_VEC_SCA(func) \ 97 template <typename T, precision P> \ 98 GLM_FUNC_QUALIFIER detail::tvec2<T, P> func \ 100 detail::tvec2<T, P> const & x, \ 101 typename detail::tvec2<T, P>::value_type const & y \ 104 return detail::tvec2<T, P>( \ 109 #define VECTORIZE3_VEC_SCA(func) \ 110 template <typename T, precision P> \ 111 GLM_FUNC_QUALIFIER detail::tvec3<T, P> func \ 113 detail::tvec3<T, P> const & x, \ 114 typename detail::tvec3<T, P>::value_type const & y \ 117 return detail::tvec3<T, P>( \ 123 #define VECTORIZE4_VEC_SCA(func) \ 124 template <typename T, precision P> \ 125 GLM_FUNC_QUALIFIER detail::tvec4<T, P> func \ 127 detail::tvec4<T, P> const & x, \ 128 typename detail::tvec4<T, P>::value_type const & y \ 131 return detail::tvec4<T, P>( \ 138 #define VECTORIZE_VEC_SCA(func) \ 139 VECTORIZE1_VEC_SCA(func) \ 140 VECTORIZE2_VEC_SCA(func) \ 141 VECTORIZE3_VEC_SCA(func) \ 142 VECTORIZE4_VEC_SCA(func) 144 #define VECTORIZE1_VEC_VEC(func) \ 145 template <typename T, precision P> \ 146 GLM_FUNC_QUALIFIER detail::tvec1<T, P> func \ 148 detail::tvec1<T, P> const & x, \ 149 detail::tvec1<T, P> const & y \ 152 return detail::tvec1<T, P>( \ 156 #define VECTORIZE2_VEC_VEC(func) \ 157 template <typename T, precision P> \ 158 GLM_FUNC_QUALIFIER detail::tvec2<T, P> func \ 160 detail::tvec2<T, P> const & x, \ 161 detail::tvec2<T, P> const & y \ 164 return detail::tvec2<T, P>( \ 169 #define VECTORIZE3_VEC_VEC(func) \ 170 template <typename T, precision P> \ 171 GLM_FUNC_QUALIFIER detail::tvec3<T, P> func \ 173 detail::tvec3<T, P> const & x, \ 174 detail::tvec3<T, P> const & y \ 177 return detail::tvec3<T, P>( \ 183 #define VECTORIZE4_VEC_VEC(func) \ 184 template <typename T, precision P> \ 185 GLM_FUNC_QUALIFIER detail::tvec4<T, P> func \ 187 detail::tvec4<T, P> const & x, \ 188 detail::tvec4<T, P> const & y \ 191 return detail::tvec4<T, P>( \ 198 #define VECTORIZE_VEC_VEC(func) \ 199 VECTORIZE1_VEC_VEC(func) \ 200 VECTORIZE2_VEC_VEC(func) \ 201 VECTORIZE3_VEC_VEC(func) \ 202 VECTORIZE4_VEC_VEC(func) 210 template<
typename F,
typename T>
220 template<
typename F,
typename T>
static GLM_FUNC_QUALIFIER T apply(F functor, const T &val)
static GLM_FUNC_QUALIFIER T apply(F, const T &val)
#define GLM_FUNC_QUALIFIER