我有一些模板函數由於模板類型而具有不同數量的參數。這個函數是用宏定義包裝的。宏定義中的參數數
#define SomeTemplate(TemplateType, Arguments) someFunc<TemplateType>(Arguments);
當我只使用一個參數進行函數調用時,一切都可以,但我需要更多。我看着它推動通過不同的宏定義做這樣的事情,這樣的:
#define TEMP_1(Arg1) someFunc<Template>(Arg1);
#define TEMP_2(Arg1, Arg2) someFunc<Template>(Arg1, Arg2);
#define TEMP_3(Arg1, Arg2, Arg3) someFunc<Template>(Arg1, Arg2, Arg3);
但標記爲便攜式的編譯器的代碼。有一些方法可以使用任意數量的參數進行一些定義。我怎樣才能做到這一點?
爲什麼你需要這個嗎?爲什麼不直接使用模板化函數,而不使用宏? – doublep 2010-06-20 22:08:56
@doublep,因爲調用更大,佔用更多的地方。我在這裏簡化了它。 – Ockonal 2010-06-20 22:20:42