c++ - 如何编写类层次结构以在浮点类型之间轻松切换?

标签 c++ templates floating-point typedef

在我的 3d 图形程序中,我可以编写我的类来使用 floatdouble 来表示实数。我希望能够在编译时轻松做出选择。我看到两个选项:

1) 将所有类更改为以浮点类型为参数的模板。几乎我所有的类都需要更改为模板。

2) 创建一个 typedef(例如 typedef float real;),然后确保我在整个类(class)中只使用 real

我现在可以对现有代码进行两项更改。是否有任何现成的习惯用法可以执行此操作,或者您认为上述任一选择有什么问题吗?

最佳答案

在我看来,模板对于这种情况来说有点矫枉过正(编译时间更长?),一个 typedef 就足够了,而且还保留了类型安全性和可读性。

GLM Maths 库也选择了 typedef,例如: GLM Repository

关于c++ - 如何编写类层次结构以在浮点类型之间轻松切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23760908/

相关文章:

c++ - 如果抽象基类是一个接口(interface),是否必须在派生类构造函数中调用基类构造函数?

c++ - c++ STL unordered_map 如何打印它的所有值?

c++ - 当试图通过使用带有虚拟参数的模板别名来隐藏基类来混淆它们时,clang 和 gcc 之间的行为差​​异

c++ - 依赖于模板的基本成员未正确解析

python - C++ 和 cython - 寻求一种避免模板限制的设计模式

java - 伊巴蒂斯+Oracle : How to update a float value

c - 除法和类次的区别

c++ - 如何使用 directshow 执行进程间(非线程)流共享?

c++ - 如何从 C++ 代码中获取统计分布?

C++:如何在不进行舍入、截断或填充的情况下将 float 转换为字符串?