Y as bosst.format et les QString qui sont type-safe
Version imprimable
oui j'ai oublié "dans la stl", désolé :)
En fait, je verrais bien un mélange entre les flux et sprinf(), un truc avec une syntaxe de ce genre:
Ça existe ?Code:
1
2
3
4
5
6 StringFormatter fmt("%d + %d = %d"); fmt << a << b << (a+b); std::string str = fmt.str(); //Version courte std::string str = ( StringFormatter("%d + %d = %d") << a << b << (a+b) ).str();
Boost.Format a quelque chose de proche. D'autres (dont moi, mais c'est pas dispo publiquement) on aussi ecrit des choses similaires.
Pour ta seconde forme, suivant la maniere dont on a ecrit la classe, il faut faire attention au fait qu'il n'est pas possible d'avoir des references non const sur les temporaires (donc on se retrouve soit avec des erreurs, soit avec un comportement inattendu, du genre utiliser l'operateur<< pour void* plutot que celui pour char*).