我正在重构具有大量长头文件的代码库(为了易于使用并简化编译,头同时包含接口和实现)。
代码库避免了野火之类的多态性,因此它使用如下宏来解析内部存储类型:
#if defined USE_NIBBLE_CODES
#include "nibble.h"
#elif defined USE_BUTECODES
#include "byte.h"
....
#endif
我的问题是,假设前面提到的实现头文件有很多共同点,那么最好将它们合并为一个,并使用宏将实现之间的差异分开。
答案 0 :(得分:0)
实现头文件有很多共同点,最好将它们合并成一行,然后使用宏来分隔实现之间的差异。
是的...分解通用代码可以更轻松地确保将错误修复和改进正确地应用于两者。
也就是说,还有其他方法可以支持对行为进行编译时选择,这可能比在任何地方都使用条件编译更好,例如,一次使用它来在两个“策略”类之间进行选择,每种类都具有支持代码。