我试图在模板函数中进行一些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可以正常工作.我如何处理这个案子?
经典的C++错误.解决方案是使用以下template关键字:
return matrix.template lpNorm<1>();
Run Code Online (Sandbox Code Playgroud)
查看详细信息.