在我的 3d 图形程序中,我可以编写我的类来使用 float
或 double
来表示实数。我希望能够在编译时轻松做出选择。我看到两个选项:
1) 将所有类更改为以浮点类型为参数的模板。几乎我所有的类都需要更改为模板。
2) 创建一个 typedef(例如 typedef float real;
),然后确保我在整个类(class)中只使用 real
。
我现在可以对现有代码进行两项更改。是否有任何现成的习惯用法可以执行此操作,或者您认为上述任一选择有什么问题吗?
最佳答案
在我看来,模板对于这种情况来说有点矫枉过正(编译时间更长?),一个 typedef 就足够了,而且还保留了类型安全性和可读性。
GLM Maths 库也选择了 typedef,例如: GLM Repository
关于c++ - 如何编写类层次结构以在浮点类型之间轻松切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23760908/