diff --git a/glm/core/func_vector_relational.hpp b/glm/core/func_vector_relational.hpp
index 156f6cf3..4ee7b46c 100644
--- a/glm/core/func_vector_relational.hpp
+++ b/glm/core/func_vector_relational.hpp
@@ -52,8 +52,8 @@ namespace glm
///
/// @see GLSL lessThan man page
/// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- template
- typename vecType::bool_type lessThan(vecType const & x, vecType const & y);
+ template class vecType>
+ typename vecType::bool_type lessThan(vecType const & x, vecType const & y);
/// Returns the component-wise comparison of result x <= y.
///
@@ -61,8 +61,8 @@ namespace glm
///
/// @see GLSL lessThanEqual man page
/// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- template
- typename vecType::bool_type lessThanEqual(vecType const & x, vecType const & y);
+ template class vecType>
+ typename vecType::bool_type lessThanEqual(vecType const & x, vecType const & y);
/// Returns the component-wise comparison of result x > y.
///
@@ -70,8 +70,8 @@ namespace glm
///
/// @see GLSL greaterThan man page
/// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- template
- typename vecType::bool_type greaterThan(vecType const & x, vecType const & y);
+ template class vecType>
+ typename vecType::bool_type greaterThan(vecType const & x, vecType const & y);
/// Returns the component-wise comparison of result x >= y.
///
@@ -79,8 +79,8 @@ namespace glm
///
/// @see GLSL greaterThanEqual man page
/// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- template
- typename vecType::bool_type greaterThanEqual(vecType const & x, vecType const & y);
+ template class vecType>
+ typename vecType::bool_type greaterThanEqual(vecType const & x, vecType const & y);
/// Returns the component-wise comparison of result x == y.
///
@@ -88,8 +88,8 @@ namespace glm
///
/// @see GLSL equal man page
/// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- template
- typename vecType::bool_type equal(vecType const & x, vecType const & y);
+ template class vecType>
+ typename vecType::bool_type equal(vecType const & x, vecType const & y);
/// Returns the component-wise comparison of result x != y.
///
@@ -97,8 +97,8 @@ namespace glm
///
/// @see GLSL notEqual man page
/// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- template
- typename vecType::bool_type notEqual(vecType const & x, vecType const & y);
+ template class vecType>
+ typename vecType::bool_type notEqual(vecType const & x, vecType const & y);
/// Returns true if any component of x is true.
///
@@ -106,7 +106,7 @@ namespace glm
///
/// @see GLSL any man page
/// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- template class vecType>
+ template class vecType>
bool any(vecType const & v);
/// Returns true if all components of x are true.
@@ -115,7 +115,7 @@ namespace glm
///
/// @see GLSL all man page
/// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- template class vecType>
+ template class vecType>
bool all(vecType const & v);
/// Returns the component-wise logical complement of x.
@@ -125,7 +125,7 @@ namespace glm
///
/// @see GLSL not man page
/// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- template class vecType>
+ template class vecType>
vecType not_(vecType const & v);
/// @}
diff --git a/glm/gtc/quaternion.inl b/glm/gtc/quaternion.inl
index 46e7490d..c24dce98 100644
--- a/glm/gtc/quaternion.inl
+++ b/glm/gtc/quaternion.inl
@@ -796,12 +796,6 @@ namespace detail
detail::tquat const & y
)
{
- //GLM_STATIC_ASSERT(detail::is_vector >::_YES,
- // "Invalid template instantiation of 'lessThan', GLM vector types required");
- GLM_STATIC_ASSERT(detail::is_bool::_NO,
- "Invalid template instantiation of 'lessThan', GLM vector types required floating-point or integer value types vectors");
- assert(x.length() == y.length());
-
typename detail::tquat::bool_type Result(detail::tquat::null);
for(typename detail::tquat::size_type i = 0; i < x.length(); ++i)
Result[i] = x[i] < y[i];
@@ -816,12 +810,6 @@ namespace detail
detail::tquat const & y
)
{
- //GLM_STATIC_ASSERT(detail::is_vector >::_YES,
- // "Invalid template instantiation of 'lessThanEqual', GLM vector types required");
- GLM_STATIC_ASSERT(detail::is_bool::_NO,
- "Invalid template instantiation of 'lessThanEqual', GLM vector types required floating-point or integer value types vectors");
- assert(x.length() == y.length());
-
typename detail::tquat::bool_type Result(detail::tquat::null);
for(typename detail::tquat::size_type i = 0; i < x.length(); ++i)
Result[i] = x[i] <= y[i];
@@ -835,12 +823,6 @@ namespace detail
detail::tquat const & y
)
{
- //GLM_STATIC_ASSERT(detail::is_vector >::_YES,
- // "Invalid template instantiation of 'greaterThan', GLM vector types required");
- GLM_STATIC_ASSERT(detail::is_bool::_NO,
- "Invalid template instantiation of 'greaterThan', GLM vector types required floating-point or integer value types vectors");
- assert(x.length() == y.length());
-
typename detail::tquat::bool_type Result(detail::tquat::null);
for(typename detail::tquat::size_type i = 0; i < x.length(); ++i)
Result[i] = x[i] > y[i];
@@ -854,12 +836,6 @@ namespace detail
detail::tquat const & y
)
{
- //GLM_STATIC_ASSERT(detail::is_vector >::_YES,
- // "Invalid template instantiation of 'greaterThanEqual', GLM vector types required");
- GLM_STATIC_ASSERT(detail::is_bool::_NO,
- "Invalid template instantiation of 'greaterThanEqual', GLM vector types required floating-point or integer value types vectors");
- assert(x.length() == y.length());
-
typename detail::tquat::bool_type Result(detail::tquat::null);
for(typename detail::tquat::size_type i = 0; i < x.length(); ++i)
Result[i] = x[i] >= y[i];
@@ -867,16 +843,12 @@ namespace detail
}
template
- GLM_FUNC_QUALIFIER typename detail::tquat::bool_type equal
+ GLM_FUNC_QUALIFIER typename detail::tquat::bool_type equal
(
detail::tquat const & x,
detail::tquat const & y
)
{
- //GLM_STATIC_ASSERT(detail::is_vector >::_YES,
- // "Invalid template instantiation of 'equal', GLM vector types required");
- assert(x.length() == y.length());
-
typename detail::tquat::bool_type Result(detail::tquat::null);
for(typename detail::tquat::size_type i = 0; i < x.length(); ++i)
Result[i] = x[i] == y[i];
@@ -884,16 +856,12 @@ namespace detail
}
template
- GLM_FUNC_QUALIFIER typename detail::tquat::bool_type notEqual
+ GLM_FUNC_QUALIFIER typename detail::tquat::bool_type notEqual
(
detail::tquat const & x,
detail::tquat const & y
)
{
- //GLM_STATIC_ASSERT(detail::is_vector >::_YES,
- // "Invalid template instantiation of 'notEqual', GLM vector types required");
- assert(x.length() == y.length());
-
typename detail::tquat::bool_type Result(detail::tquat::null);
for(typename detail::tquat::size_type i = 0; i < x.length(); ++i)
Result[i] = x[i] != y[i];
diff --git a/test/gtc/gtc_type_precision.cpp b/test/gtc/gtc_type_precision.cpp
index b38349eb..d27ee5a6 100644
--- a/test/gtc/gtc_type_precision.cpp
+++ b/test/gtc/gtc_type_precision.cpp
@@ -152,7 +152,18 @@ static int test_hvec_precision()
static int test_fvec_precision()
{
int Error(0);
-
+/*
+ {
+ glm::f32vec2 v1;
+ glm::lowp_f32vec2 v2((glm::f32vec2(v1)));
+ glm::mediump_f32vec2 v3((glm::f32vec2(v1)));
+ glm::highp_f32vec2 v4((glm::f32vec2(v1)));
+
+ Error += glm::all(glm::equal(v1, v2)) ? 0 : 1;
+ Error += glm::all(glm::equal(v1, v3)) ? 0 : 1;
+ Error += glm::all(glm::equal(v1, v4)) ? 0 : 1;
+ }
+*/
{
glm::f32vec2 v1;
glm::lowp_f32vec2 v2(v1);
@@ -927,15 +938,18 @@ static int test_quat_precision()
{
glm::f32quat q1;
- glm::f32quat q2(glm::lowp_f32quat(q1));
- glm::f32quat q3(glm::mediump_f32quat(q1));
- glm::f32quat q4(glm::highp_f32quat(q1));
+ glm::lowp_f32quat qA(q1);
+ glm::mediump_f32quat qB(q1);
+ glm::highp_f32quat qC(q1);
+ glm::f32quat q2(qA);
+ glm::f32quat q3(qB);
+ glm::f32quat q4(qC);
- //Error += glm::all(glm::equal(q1, q2)) ? 0 : 1;
- //Error += glm::all(glm::equal(q1, q3)) ? 0 : 1;
- //Error += glm::all(glm::equal(q1, q4)) ? 0 : 1;
+ Error += glm::all(glm::equal(q1, q2)) ? 0 : 1;
+ Error += glm::all(glm::equal(q1, q3)) ? 0 : 1;
+ Error += glm::all(glm::equal(q1, q4)) ? 0 : 1;
}
-
+
return Error;
}