Ver Mensaje Individual
  #9 (permalink)  
Antiguo 25/06/2010, 07:31
fightmx
 
Fecha de Ingreso: febrero-2003
Ubicación: D.F.
Mensajes: 163
Antigüedad: 21 años, 2 meses
Puntos: 22
Respuesta: Como se utiliza Función Objeto? :( Ayuda porfavor !!!!

Así es, omití el detalle del espacio al momento de invocar templates anidados:

ostream_iterator<MyPair<string, string>>(); // mal
ostream_iterator<MyPair<string, string> >(); // bien

y salia sobrando un typename. (edité el código anterior con la corrección).

Lo último que mencionas funciona:
Código C++:
Ver original
  1. namespace std{
  2.     template<class T1, class T2>
  3.     istream& operator>>(istream& is, pair<T1, T2>& p){
  4.         return is >> p.first >> p.second;
  5.     }
  6.     template<class T1, class T2>
  7.     ostream& operator<<(ostream& os, const pair<T1, T2>& p){
  8.         return os << "[" << p.first << ", " << p.second << "]";
  9.     }
  10. }
Solo que tendrás que definir el operador dentro del namespace std, algo que no es recomendable y que no siempre funciona, es para que lo tomes en cuenta.

Saludos.