我不能这样做:
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 ×1