在特征中使用lpNorm

时间:2015-02-18 14:09:07

标签: c++ eigen

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

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

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

1 个答案:

答案 0 :(得分:7)

经典的C ++错误。解决方案是使用template关键字,如下所示:

return matrix.template lpNorm<1>();

请参阅details