标签: c++ eigen
我试图在模板函数中进行一些L_p范数计算
template<typename Number> Number foo(const Eigen::MatrixBase<Number>& matrix) { return matrix.lpNorm<1>(); }
但是,如果我尝试拨打foo(matrix),CLang会在行尾输出错误的“预期表达式”。如果我使用具体定义的(双)矩阵,lpNorm可以正常工作。我如何处理这个案子?
foo(matrix)
lpNorm
答案 0 :(得分:7)
经典的C ++错误。解决方案是使用template关键字,如下所示:
template
return matrix.template lpNorm<1>();
请参阅details。