为什么std :: to_string没有短暂的重载?为什么没有noexcept?

Kno*_*abe 10 c++ c++11

有谁知道为什么在to_stringC++ 11标准的第21.5节中声明的各种函数缺少short和unsigned short的重载?如何宣布这些功能noexcept呢?这是一整套重载:

string to_string(int val);
string to_string(unsigned val);
string to_string(long val);
string to_string(unsigned long val);
string to_string(long long val);
string to_string(unsigned long long val);
string to_string(float val);
string to_string(double val);
string to_string(long double val);
Run Code Online (Sandbox Code Playgroud)

我查看了导致这些功能被采纳的提案(N1803,N1982,N2408),但没有一个有任何动机或理由.

如果我通过在一个帖子中提出两个(相当相关的,IMO)问题来违反协议,我道歉.我还是新人.

Ker*_* SB 13

例外:没有noexcept构造函数std::string,所以这是不可能的(即字符串内存分配可能会失败).

短裤:缺少默认提升的所有整数类型; 我想从支持他们中得不到任何好处.相比之下,较长的类型可能更昂贵,因此int应该为空间意识提供.