为什么 C++ 随机数生成不支持有符号/无符号 8 位整数类型?

Ash*_*ppa 6 c++ random c++-standard-library

从 C++11 §26.5.1.1 关于随机数生成的要求:

在本第 26.5 条中,实例化具有名为IntType的模板类型参数的模板的效果是未定义的,除非相应的模板参数是 cv-unqualified 并且是 short、int、long、long long、unsigned 之一short、unsigned int、unsigned long 或 unsigned long long。

在要求中将8 位有符号/无符号类型排除在随机数生成之外的原因是什么?

Mar*_*low 0

该问题作为LWG Issue 2326提出,并以“不是缺陷”结束。

并不是因为人们不赞成,而是因为它是一个新功能,而不是一个错误。委员会认为,通过撰写一篇论文来讨论进行此更改的优点和缺点会更好。

目前还没有人写过这样的论文。

正如@NathanOliver 指出的,这个问题之前已经被问过,那里的链接表明这有些争议。