我的工作,有很多特質類型的項目。如果我在相同的代碼庫中編譯每個特徵,則釋放的二進制文件將會很大。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