如果我想要为具有匹配接口的两个集合使用复杂的函数(至少就涉及的函数而言),是否有一种方法可以重新使用模板代码?对不同的参数使用相同的模板函数?
例如:
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