【发布时间】:2018-06-30 17:00:56
【问题描述】:
我这样问这个问题是因为我不知道如何更好地表达它。
现在,我正在使用 Eigen 库编写一个 3D 应用程序。 Eigen 只有一个 Vector 类,但我需要不同的向量和点数据类型。
两者都可以用一个
来表示Eigen::Vector4d(x,y,z,w)
其中 w 为 1 表示点,0 表示向量。
我知道我可以使用
来定义一个类型typedef vec3d Eigen::Vector4d
或
#define point3d Eigen::Vector4d
但是有没有办法以某种方式定义它,使得 w 对于向量始终为 0,对于点始终为 1?
typedef vec3d(x,y,z) Eigen::Vector4d(x,y,z,w)
没用。
【问题讨论】:
-
#define point3d Eigen::Vector4d请不要再写一遍,这是非常糟糕的做法。 -
是的,我知道,我不会在 C++ 中使用它,但它至少是一种可能的方式。
-
为此使用宏或工厂方法
标签: c++ types macros precompile