Числовое преобразование

В заголовке C++11 есть три новые функции для преобразования числа в строку.

std::string std::to_string(unsigned long long);
std::string std::to_string(long double);
std::string std::to_string(long long);

Первый вопрос - почему всего 3 функции? Как насчет простого int или unsigned int и т. д.?

Второй вопрос - почему to_string не выдает исключение в следующем коде?

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"

И третий вопрос - почему c равно 1.0 ?

6
задан innochenti 21 March 2012 в 13:03
поделиться