![]() |
1
1
如果峰值性能真的是一个问题,我会避免运行时多态现象,这不仅是因为虚拟函数调用的vtable查找,还因为:
宏往往很难调试,所以除非您需要它们进行字符串连接的能力(这是它们在某些情况下相对于模板的独特优势),否则我个人会选择使用静态多态性技术的基于模板的解决方案,如您所指出的 curiously recurring template pattern 和/或模板专门化(如果适用)来处理自定义数据结构。 |
![]() |
2
0
使用特定于平台的头文件。这是一个额外的选择,类似于宏,但没有粗糙的。
|
![]() |
3
0
你说的表现是什么意思?如果是最终代码运行的性能问题,请记住,包含虚拟函数的类继承解决方案在调用它们时将涉及少量开销。 其他解决方案会为项目的构建阶段带来额外的开销,而且由于代码的“复制”(通过模板具体化、自定义代码生成或宏扩展),可执行文件也会稍微大一些。 |