這是一個簡單的問題,我想。如何編寫接受std :: vector或std :: list的函數?
向量和列表都具有push和pop功能,以及 - 更重要的是 - 可以遍歷:
for (auto value : items)
...
的std :: vector和std ::名單似乎並不共享一個基礎類,然而。所以問題是:我如何編寫一個函數來接受任何一個(或者其他符合實現的東西)?
std::list<int> a;
std::vector<int> b;
DoSomething(a);
DoSomething(b);
我想這樣做沒有超載。如果使用模板,它們不應該導致瘋狂的錯誤消息。例如,下面的代碼 -
int a;
DoSomething(a);
- 應導致編譯錯誤在調用點,不顯山露水的模板裏面!
任何人有什麼想法?
因此在未來五年左右,這是不可能的? (BCCL看起來太複雜,順便說一句) –