C++ 如何编写类层次结构来轻松地在浮点类型之间切换?
在我的3d图形程序中,我可以编写类来使用C++ 如何编写类层次结构来轻松地在浮点类型之间切换?,c++,templates,floating-point,typedef,C++,Templates,Floating Point,Typedef,在我的3d图形程序中,我可以编写类来使用float或double来表示实数。我希望能够在编译时轻松地做出选择。我看到两种选择: 1) 将所有类更改为以浮点类型为参数的模板。几乎我所有的类都需要更改为模板 2) 创建一个typedef(例如typedef float real;),然后确保我在整个课程中只使用real 我现在可以对现有代码进行两项更改。有没有现成的习惯用法可以这样做,或者您认为上面的选择有什么错误?在我看来,模板在这种情况下太过复杂了(编译时间更长?),typedef就足够了,还可
float
或double
来表示实数。我希望能够在编译时轻松地做出选择。我看到两种选择:
1) 将所有类更改为以浮点类型为参数的模板。几乎我所有的类都需要更改为模板
2) 创建一个typedef(例如typedef float real;
),然后确保我在整个课程中只使用real
我现在可以对现有代码进行两项更改。有没有现成的习惯用法可以这样做,或者您认为上面的选择有什么错误?在我看来,模板在这种情况下太过复杂了(编译时间更长?),typedef就足够了,还可以保持类型安全性和可读性 GLM数学库还选择了typedefs,例如:
在我看来,模板在这种情况下(更长的编译时间?)是多余的,一个typedef就足够了,还可以保持类型安全性和可读性 GLM数学库还选择了typedefs,例如:
有一个或多个指南:使用typedef
标准如MISRA C++编码标准定义了一个咨询规则(规则3-9-2)< /P> 应在适当位置使用指示大小和符号的typedef 基本的数字类型
可能还有其他标准暗示同样的行为。Afaik Win API使用typedef(WORD、DWORD等)来实现这一点。有一个或多个指南:使用typedef
标准如MISRA C++编码标准定义了一个咨询规则(规则3-9-2)< /P> 应在适当位置使用指示大小和符号的typedef 基本的数字类型
可能还有其他标准暗示同样的行为。Afaik Win API使用typedefs(WORD、DWORD等)来实现这一点