小编mal*_*0_o的帖子

Eigen:无法对 Vector2i 使用norm()

我不能这样做:

Vector2i vec(0, 1, 2);
cout << vec.norm() << endl;
Run Code Online (Sandbox Code Playgroud)

因为它给出了一个编译器错误,其中提到:THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES在一些失败的断言中。

我可以做:

Vector2i i_vec(0, 1, 2);
Vector2f f_vec;
f_vec = i_vec.cast<float>();
cout << f_vec.norm() << endl;
Run Code Online (Sandbox Code Playgroud)

这显然有效。

norm问题:没有为 定义该方法的任何原因吗VectorXi?

也许 Eigen 使用 的元素类型Vector来确定 的返回类型norm()(在这种情况下,norm()不会为 的返回类型定义是有意义的int)?

只是好奇。

eigen

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

eigen ×1