Comment concaténer une std::string et un int?

Je pensais que ce serait vraiment simple, mais elle présente certaines difficultés. Si j'ai

std::string name = "John";
int age = 21;

Comment les combiner pour obtenir une chaîne unique "John21"?

  • Herb Sutter a un bon article sur ce sujet: "La Chaîne de Formatage de Manor Farm". Il couvre Boost::lexical_cast, std::stringstream, std::strstream (ce qui est déconseillé), et sprintf vs snprintf.
  • Permettez-moi d'ajouter ceci: "j'ai essayé" str = "salut"; str += 5; cout << str; " et vu aucun effet. S'avère que c'appels de l'opérateur+=(char) et ajoute un caractère non imprimable.