【发布时间】:2020-12-11 11:22:05
【问题描述】:
unaryExpr 无法在 MSVC 中的自定义 lambda 下将 X 类型的矩阵转换为 Y 类型,但可以与 GCC 和 clang 一起使用。有没有人遇到过这个?有什么解决方法吗?在我给出的示例中,我使用了一个矩阵,但在我的应用程序中,我使用了一个稀疏矩阵,因此它不像转换底层数组那么容易。
#include <Eigen/Core>
#include <string>
struct Expression {
std::string d_ = "doesn't matter";
};
int main() {
Eigen::Matrix<Expression, 3, 3> in;
Eigen::Matrix3d out = in.unaryExpr([](const Expression& x) -> double { return 3.0; });
}
【问题讨论】: