我想知道是否有辦法創建一個模板函數,它需要引用任何特定類型的集合。即是這樣的:是否有可能擁有任何類型T的集合的C++模板函數?
class Bob
{
public:
int age;
int height;
}
template<class T>
void functionWhichIteratesOverBobs(T &bobs)
{
int totalAge = 0;
for(auto &bob: bobs)
{
totalAge += bob.age;
}
}
基本上是有它返回一個迭代到T
的方式,在模板函數的定義,要求T的一個開始()和end()函數我已經看到了以下問題,但這需要一個函數,它接受一個開始和結束,即
std::vector<Bob> bobs;
functionWhichIteratesOverBobs(bob.begin(), bob.end());
當我想的是:
std::vector<Bob> bobs;
functionWhichIteratesOverBobs(bobs);
Function that takes an STL iterator over ANY container of a elements of a specific type
「要求T」...那T是什麼? – 2015-04-02 03:49:41
修正了上面的句子。 – bpeikes 2015-04-02 04:40:23
這是爲了提供重載或提供更好的錯誤消息嗎? – 2015-04-02 04:42:28