Why this doesnt't work in C++?
- by user3377450
I'm doing something and I have this:
//main.cpp file
template<typename t1, typename t2>
std::ostream& operator<<(std::ostream& os, const std::pair<t1, t2>& pair)
{
return os << "< " << pair.first << " , " << pair.second << " >";
}
int main()
{
std::map<int, int> map = { { 1, 2 }, { 2, 3 } };
std::cout << *map.begin() << std::endl;//This works
std::copy(map.begin(), map.end(),
std::ostream_iterator<std::pair<int,int> >(std::cout, " "));//this doesn't work
}
I guess this is not working because in the std::copy algorithm the operator isn't defined, but what can I do?