Manipulation d'ostream

Manipulation d'ostream - C++ - Programmation

Marsh Posté le 12-08-2010 à 14:39:32    

Hello,
 
J'ai une fonction comme ça :
void foo( std::ostream& out )
{
   std::stringstream sstr;
   sstr << out;
   std::cout << sstr.str() << std::endl;
}
 
Comment faire que l'appel suivant fonctionne ?
int age = 12;
foo( "toto a " << age << " ans" );


---------------
Be the one with the flames.
Reply

Marsh Posté le 12-08-2010 à 14:39:32   

Reply

Marsh Posté le 12-08-2010 à 15:07:23    

passez un ostream a foo. "toto a" << age n'a pas de sens, l'operateur << n'ets pas défini sur les char const[7]

Reply

Marsh Posté le 12-08-2010 à 15:12:09    

Oui mais justement, ya pas un moyen de transformer ça automatiquement en ostream ?


---------------
Be the one with the flames.
Reply

Marsh Posté le 12-08-2010 à 15:51:04    

non :¶
et ton exemple sent le saucisson, tu veux faire quoi en vrai ?

 


Message édité par Joel F le 12-08-2010 à 15:51:29
Reply

Marsh Posté le 12-08-2010 à 15:54:14    

En vrai je voudrais me faire un petit logger, avec une méthode write qui prendrait en paramètre un ostream plutôt qu'un string.


---------------
Be the one with the flames.
Reply

Marsh Posté le 12-08-2010 à 16:56:45    

ouais mais non :€
 
http://codepad.org/ihSSZRzk

Reply

Marsh Posté le 12-08-2010 à 18:14:00    

Oui ça d'accord, je connaissais déjà.
Mais là ce qui m'intéresse c'est pas de faire le logger, c'était de voir s'il y avait un moyen de faire ce que je demandais dans le 1er post.
 
Et merci pour le bout de code.


---------------
Be the one with the flames.
Reply

Marsh Posté le 12-08-2010 à 19:15:11    

Apres ouais, faut passer par un truc a base d'expression template qui rend l'expression a base de << paresseuse ... C'ets un peu l'overkill

Reply

Marsh Posté le 13-08-2010 à 09:01:27    

Mais c'est ça qu'est bon ! :¶


---------------
Be the one with the flames.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed