c++ stringstream à ostream à chaîne

Je voudrais être capable de faire:

foo(stringstream()<<"number = " << 500);

EDIT: la seule solution en ligne est cruciale, car c'est à des fins de journalisation. Ces derniers seront tout autour du code.

à l'intérieur de foo affichera la chaîne à l'écran ou quelque chose du genre.

maintenant depuis stringstream de l'opérateur<< retourne ostream&, foo signature doit être:

foo(ostream& o);

mais comment puis-je convertir ostream& string? (ou char*).
Des approches différentes à la réalisation de ce cas d'utilisation sont les bienvenus.

Ne foo vraiment besoin de prendre une ostream &? Ou serait-il acceptable que si elle prend un stringstream & ou peut-être un std::string const &?
pour avoir tous les travaux en une seule ligne, je crois qu'il n'
Ne pouvez-vous pas créer une macro pour cela, puisque c'est du C++? Ensuite, vous avez foo(MACRO_NAME("number = " << 500)).
Vous pouvez toujours static_cast (ou dynamic_cast si vous voulez être sûr) o à stringstream à l'intérieur de foo.
Vous pourriez envisager d'utiliser un string builder.

OriginalL'auteur Leo | 2011-11-02