[C con Clase] problema sobrecargando << hacia stringstream
Pedro Mateo
pedromateoa en gmail.com
Lun Mar 26 06:30:08 CEST 2007
/*
saludo
he creado una plantilla para poder sobrecargar << de mi clase a
cualquier otra
esto funciona para cout pero no para stringstream
en el siguiente codigo me explico mejor
*/
#include <iostream>
#include <sstream>
using namespace std;
class miclase{
public:
template <typename T> friend
T& operator<<(T& o, const miclase& x) { return o<<"esta es
miclase";}
};
main(){
miclase x;
cout<<x<<endl; //esto me sale bien
// hasta aqui si no agrega las siguientes lineas el programa se
compila sin errores
// puede comentar las siguientes lineas para verificar lo que digo
stringstream c;
c<<x;
cout<<c.str()<<endl;
// el punto es que la plantilla que funciona en cout<<x<<endl;
// entiendo que deberia funcionarme en c<<x;
// me da el siguiente error al compilar
/*
test.cpp: In function 'T& operator<<(T&, const miclase&)
[with T = std::stringstream]':
test.cpp:23: instantiated from here
test.cpp:12: error: inicialización inválida de la referencia
de tipo 'std::stringstream&' desde una expresión de tipo
'std::basic_ostream<char, std::char_traits<char> >'
*/
}
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20070326/2173e6aa/attachment.html>
Más información sobre la lista de distribución Cconclase