gpt4 book ai didi

c++ - 编译时条件包含。分段 header 与包括整个实现

转载 作者:太空宇宙 更新时间:2023-11-04 12:45:39 30 4
gpt4 key购买 nike

我正在重构一个包含大量长头文件的代码库(为了便于使用和简化编译,头文件同时包含接口(interface)和实现)。

代码库避免了像野火一样的多态性,因此它使用宏解析内部存储类型,如下所示:

#if defined USE_NIBBLE_CODES
#include "nibble.h"
#elif defined USE_BUTECODES
#include "byte.h"
....
#endif

我的问题是,假设前面提到的实现头文件有大量共同的行,是否最好将它们合并为一个,并使用宏来分隔实现之间的差异。

最佳答案

implementation header files have a large amount of lines in common, would it be preferable to merge them into one, and use the macros to separate the differences between implementations.

是的...分解通用代码可以更轻松地确保错误修复和改进都正确应用于两者。

也就是说,还有其他方法可以支持编译时选择行为,这可能比在所有地方使用条件编译更好,例如使用它一次在两个“策略”类之间进行选择,每个行为都有支持代码。

关于c++ - 编译时条件包含。分段 header 与包括整个实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51775631/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com