dec*_*iar 0 c++ random overloading ambiguous
我一直认为cstdlib中的随机函数只是rand和srand,但是下面的工作(在Ubuntu 10.10上使用g ++编译)?
我实际上在从Windows移动到Ubuntu时发现了这一点,我的编译失败了,因为它模糊地重载(我已经声明了我自己的'random()'函数).
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
srandom(50);
cout << random();
return 0;
};
Run Code Online (Sandbox Code Playgroud)
此外,下面在Ubuntu上正确编译,在检查stdlib.h之后出现,其中,random()和srandom()等未在std命名空间中声明.这使得它成为一个完全痛苦的屁股......
#include <iostream>
#include <cstdlib>
int main() {
std::cout << random();
return 0;
};
Run Code Online (Sandbox Code Playgroud)