首页 > 解决方案 > 为什么 C++ 随机数生成不支持有符号/无符号 8 位整数类型?

问题描述

来自 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 位有符号/无符号类型的原因是什么?

标签: c++randomc++-standard-library

解决方案


这个问题是作为LWG Issue 2326提出的,它被关闭为“不是缺陷”。

不是因为人们不赞成,而是因为它是一个新功能,而不是一个错误。委员会认为最好写一篇论文来讨论做出这种改变的利弊。

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

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


推荐阅读