Ambiguous overload for operator<<() is called when I add the overload function below
template <typename Container> ostream& operator<<(ostream& os, const Container& c)  
  {  
  copy(c.begin(), c.end(), ostream_iterator<typename Container::value_type>(os, " "));  
  return os;  
  }
the error is called on this function where it uses the <<.
  void print_list(const list<int>& list_int)
    {
    for (list<int>::const_iterator it = list_int.begin(); it != list_int.end(); it++) cout << *it << " ";
    }
 
     
    