如果我想要爲具有匹配接口的兩個集合使用複雜的函數(至少就涉及的函數而言),是否有一種方法可以重新使用模板代碼?對不同的參數使用相同的模板函數?
例如:
void DoSomethingIntense(std::vector<blah> myBlah);
void DoSomethingIntense(std::array<blah> myBlah);
如果使用開始,結束,大小,並且這兩個陣列和矢量共同具有的其它功能,是有辦法重新使用DoSomethingIntense的主體而無需鍵入它兩次(或者,天堂禁止,把它塞進一個宏)?
(請不要雞蛋裏挑骨頭的示例代碼,它並不能幫助任何人)
UPDATE:我的道歉,我忘了提及有問題的功能有其他實現方式爲不此簽名匹配類;只是讓每個參數都使用適用於這兩個參數的代碼不是一個選項。
我認爲在這種情況下迭代器解決方案可能是最好的。
是不是你需要的模板函數?我很困惑,因爲你的問題包含明顯的答案... – 2015-01-26 19:13:26
這不是一個模板函數,但也許它應該是。 – tadman 2015-01-26 19:14:04