KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am trying to write a piece of code for fun using C++ templates. #include <iostream> #include <vector> template <class Container> std::ostream& operator<<(std::ostream& o, const Container& container) { typename Container::const_iterator beg = container.begin(); o << "["; // 1 while(beg != container.end()) { o << " " << *beg++; // 2 } o << " ]"; // 3 return o; } int main() { std::vector<int> list; list.push_back(0); list.push_back(0); std::cout << list; return 0; } The above code doesn't compile :) At 1, 2, 3 the same error is produced : error C2593: 'operator <<' is ambiguous All what I am trying to do is overloading the << operator to work with any container. Does that make sense ? How would that be done If possible, if not why ? EDIT :: Thanks for corrections :) 'sth' way is a good solution. I am just curious if this ambiguity -as Neil explained- would go away if we could use C++0x Concepts ?
Tags (comma-separated)
Save Edits
Cancel