c++ - 在 Eigen 中使用 lpNorm

标签 c++ 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 .

关于c++ - 在 Eigen 中使用 lpNorm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28585653/

相关文章:

c++ - 从 Eigen::CwiseBinaryOp 转换为 MatrixXd 导致段错误

c++ - Eigen 库中具有步幅的子矩阵

c++ - 将静态私有(private)映射初始化为空

c++ - 模板库的编译器内存消耗(boost + Eigen)

c++ - 映射与 block 不一致的特征矩阵引用对象

c++ - Boost::fusion、Eigen 和 zip 变换

c++ - Matlab 语法帮助。'*

c++ - 代码下面是哪种排序技术?

c++ - 无法创建/采样 3D 纹理 (Qt/OpenGL)

c++ - 如何在 Qt Quick 中将 QML 项转换为相应的 C++ 项