我的工作,有很多特质类型的项目。如果我在相同的代码库中编译每个特征,则释放的二进制文件将会很大。C++:如何为每个特质制作特定的二进制文件(可执行文件)?
我正在考虑使用宏来从商业逻辑角度就为每个特定性状的二进制---,这非常有意义。
但是,我意识到,如果我想减少代码库,我需要有这样长的if/elif的堆在每个模板CPP文件的末尾。这听起来像是一件非常乏味的事情。
我想知道,如果你也遇到这样的问题之前,这里什么是最整齐的解决方案?
#include "MyTraits.hpp"
#include "Runner.hpp"
int main(){
#if defined USE_TRAIT_1
Runner<Trait1> a;
#elif defined USE_TRAIT_2
Runner<Trait2> a;
#elif defined USE_TRAIT_3
Runner<Trait3> a;
#endif
return 0;
}
我只想有5个不同的main_ cpp文件,每个会定义一组类型定义和不是要求普通模板功能。 –
SergeyA
你的解决方案对我来说很好。如果你有一大堆,也许你可以写一个脚本来解析你的代码库并生成主函数和makefile(或类似的)。你也可以这样做,也许'亚军其中USE_TRAIT是在你的make文件 –
JeffCharter
而不是你做的具体方式,它可能会更容易,而不是做'亚军一个;'和,而不是只用'-DUSE_TRAIT_1'编译,你'do do -DTRAIT = Trait1'(对于你正在使用的任何构建系统都适当定义) –
Justin