如何在 C++ 中将 typedef 与类初始值设定项参数一起使用?
How do I use typedef with class initializer parameters in C++?
我这样问这个问题是因为我不知道如何更好地表达它。
现在,我正在使用特征库编写一个3D应用程序。特征只有一个 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)
不行。
你可以从它继承并提供一个新的构造函数:
struct vec3d : Eigen::Vector4d {
vec3d(double x, double y, double z) : Vector4d(x, y, z, 0) {}
};
或者,我更喜欢的是编写一个工厂函数,如下所示:
Eigen::Vector4D make_vector(double x, double y, double z) {
return {x, y, z, 0};
}
相关文章:
- 如何将enable-if与模板参数和参数包一起使用
- 如何使我的 sizeof sum 结构与空参数包一起工作
- 概念可以与模板模板参数一起使用吗?
- 为什么当我尝试将priority_queue与参数一起使用作为指向结构的指针时会弹出错误
- 标准::原子::compare_exchange与两个memory_order参数一起使用的真实示例
- 如何在 C++ 中将 typedef 与类初始值设定项参数一起使用?
- 我可以将"token pasting operator"与"const"模板参数一起使用吗?
- 哪个强制转换应与模板类参数一起使用,dynamic_cast或reinterpet_cast?
- 将 boost::function 与指向派生类的共享指针的参数一起使用
- 如何将 #ifndef 与宏参数一起使用
- 如何将初始值设定项与右值引用参数一起使用 // 为什么不能使用另一个 C 样式数组变量初始化 C 样式数组
- 将模板类与引用非类型模板参数一起使用时出现链接器错误
- 如何将QDebug()与QT中的两个参数一起使用
- 将函数与指针参数一起使用作为另一个函数的参数
- 是否可以在C++中将宏条件与模板参数一起使用
- 提升program_options解析选项和参数一起
- 在C++中,如何仅将长选项与必需参数一起使用
- 当通过引用指针将函数与参数一起使用时会发生什么
- 将typedef与构造函数参数一起使用
- 将函数指针上的参数与默认值参数一起丢弃是否有效