在 Eigen 中使用 lpNorm
Use of lpNorm in Eigen
我正在尝试在模板函数中进行一些L_p范数计算
template<typename Number>
Number foo(const Eigen::MatrixBase<Number>& matrix)
{
return matrix.lpNorm<1>();
}
但是,如果我尝试调用 foo(matrix)
,CLang 会在行尾抛出错误 "expected expression"。如果我使用具体定义的(双)矩阵,lpNorm
工作得很好。我该如何处理这个案例?
典型的 C++ 错误。解决方案是使用 template
关键字,如下所示:
return matrix.template lpNorm<1>();
参见details。
我正在尝试在模板函数中进行一些L_p范数计算
template<typename Number>
Number foo(const Eigen::MatrixBase<Number>& matrix)
{
return matrix.lpNorm<1>();
}
但是,如果我尝试调用 foo(matrix)
,CLang 会在行尾抛出错误 "expected expression"。如果我使用具体定义的(双)矩阵,lpNorm
工作得很好。我该如何处理这个案例?
典型的 C++ 错误。解决方案是使用 template
关键字,如下所示:
return matrix.template lpNorm<1>();
参见details。