在特征中使用lpNorm

mer*_*ial 4 c++ eigen

我试图在模板函数中进行一些L_p范数计算

template<typename Number>
Number foo(const Eigen::MatrixBase<Number>& matrix)
{
  return matrix.lpNorm<1>(); 
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试调用,CLang会在行尾输出错误的"预期表达式" foo(matrix).如果我使用具体定义的(双)矩阵,lpNorm可以正常工作.我如何处理这个案子?

gga*_*ael 7

经典的C++错误.解决方案是使用以下template关键字:

return matrix.template lpNorm<1>();
Run Code Online (Sandbox Code Playgroud)

查看详细信息.