Convertir un entero a cadena en C++

Siempre resulta útil pasar un número a una cadena, string. En C++ siempre tuve la duda y ahora que sé cómo se hace me gustaría compartirla con vosotros.

Aquí tenéis el código fuente con un ejemplo sencillo:

#include 
#include 
#include 

int main(int argc, char *argv[])
{
  int entero = 10;
  std::string cadena = "";

  cadena = static_cast(&(std::ostringstream() << entero))->str();

  std::cout << "Esto es una cadena: " + cadena + "." << std::endl;

  return 0;
}

Si quieres puedes hacerlo incluso más sencillo si compilas en el nuevo estándar C++11:

#include 
#include 

int main(int argc, char *argv[])
{
  int entero = 10;
  std::string cadena = "";

  cadena = std::to_string(entero); // C++11

  std::cout << "Esto es una cadena: " + cadena + "." << std::endl;

  return 0;
}