C++ 为什么标准中没有定义随机变量?

C++ 为什么标准中没有定义随机变量?,c++,random,std,C++,Random,Std,我想知道为什么在包含cstdlib时不能使用std::rand_r?或者,更一般地说,为什么cstdlib中的某些函数在全局命名空间中,而不在std命名空间中?不是标准的一部分,而是POSIX方法 符合 函数rand()和srand()符合SVr4,4.3BSD,C89,C99,POSIX.1-2001。函数rand_r()来自POSIX.1-2001POSIX.1-2008将rand\u r()标记为已过时。 更好的是,忘记rand和rand\u r,使用std::mt19937,并正确分配(

我想知道为什么在包含
cstdlib
时不能使用
std::rand_r
?或者,更一般地说,为什么
cstdlib
中的某些函数在全局命名空间中,而不在
std
命名空间中?

不是标准的一部分,而是POSIX方法

符合 函数
rand()
srand()
符合SVr4,4.3BSD,C89,C99,POSIX.1-2001。函数
rand_r()
来自POSIX.1-2001
POSIX.1-2008将
rand\u r()
标记为已过时。


更好的是,忘记
rand
rand\u r
,使用
std::mt19937
,并正确分配(请参阅)。

@RobertJørgensgaardEngdahl:没有注意到,添加了它,谢谢。
rand_r(): _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_SOURCE