最近在开发项目遇到一问题,在使用std::random_device产生随机数,编译报错,内容见下面:
错误 C2039 "generate": 不是 "std::random_device" 的成员
代码场景
#include <random>
std::random_device rd;
std::mt19937 gen(rd);
std::uniform_int_distribution<> dis(0, 15);
经过查询资料,因为 VS2022 在实现标准库时,将std::random_device的generate成员函数删除了,导致编译错误。
所以上述的错误的解决方法是:使用std::random_device的构造函数生成随机数,如下:
#include <random>
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> dis(0, 15);
其中的rd()用的是构造函数。