En el encabezado de C++ 11, hay tres funciones nuevas para la conversión entre el número y la cadena.Conversión numérica
std::string std::to_string(unsigned long long);
std::string std::to_string(long double);
std::string std::to_string(long long);
La primera pregunta: ¿por qué solo hay 3 funciones? ¿Qué pasa con int simple o unsigned int, etc.?
La segunda pregunta: ¿por qué to_string no arroja la excepción en el siguiente código?
long double x = std::numeric_limits<long double>::quiet_NaN();
std::string i = std::to_string(x);
long double c = std::stold(i); // i = "1.#QNAN"
Y la tercera pregunta: ¿por qué c es igual a 1.0?
conjetura salvaje, pero tal vez solo existan tres porque el entero más pequeño y los tipos de punto flotante se pueden convertir fácilmente a ellos sin pérdida de información. – Collin