C++ 是否可以将GLM与非基本类型一起使用?

C++ 是否可以将GLM与非基本类型一起使用?,c++,glm,autodiff,C++,Glm,Autodiff,我有一些函数和数据结构使用glm进行向量和矩阵数学 现在我想计算关于输入变量的梯度。由于计算相当复杂,我想使用自动微分来验证我的手动梯度计算 我找到了,这正是我需要的。它的标量变量基于一个结构,该结构包含一个表达式的共享ptr。我想用glm::vecSure!我会赞成这个改变。还应允许使用固定点类型。不过要小心。有些操作在类似int的类型上真的没有意义,这就是为什么我认为这个检查存在的原因。也许这是一个可定制的特性?当然!我会赞成这个改变。还应允许使用固定点类型。不过要小心。有些操作在类似int

我有一些函数和数据结构使用glm进行向量和矩阵数学

现在我想计算关于输入变量的梯度。由于计算相当复杂,我想使用自动微分来验证我的手动梯度计算


我找到了,这正是我需要的。它的标量变量基于一个
结构
,该结构包含一个表达式的
共享ptr
。我想用
glm::vecSure!我会赞成这个改变。还应允许使用固定点类型。不过要小心。有些操作在类似int的类型上真的没有意义,这就是为什么我认为这个检查存在的原因。也许这是一个可定制的特性?当然!我会赞成这个改变。还应允许使用固定点类型。不过要小心。有些操作在类似int的类型上真的没有意义,这就是为什么我认为这个检查存在的原因。也许这是一个可定制的特性?
template<length_t L, typename T, qualifier Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR T dot(vec<L, T, Q> const& x, vec<L, T, Q> const& y)
{
    GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'dot' accepts only floating-point inputs");
    return detail::compute_dot<vec<L, T, Q>, T, detail::is_aligned<Q>::value>::call(x, y);
}
#define GLM_FORCE_PURE
#define GLM_FORCE_XYZW_ONLY
#define GLM_FORCE_UNRESTRICTED_GENTYPE