表題の通りMinGWを使用した場合にstd::random_deviceが毎回同じ値を出力するという現象に遭遇したので自分へのメモとして書き残しておきます。
環境
プログラム
test.cpp
#include <iostream>
#include <random>
using namespace std;
int main(void){
random_device rnd;
for(int i = 0; i < 10; i++){
cout << rnd() << endl;
}
return 0;
}
実行結果
3回実行してみましたがすべて同じ値になっています。
nanashiさんの
gccをwindowsで使うならstd::random_deviceを使ってはいけない
に書いてあるようにたぶん同じ原因でシードの値が変わってないのかなぁと思います。
なおCygwinやVisualStudio2015を使用した場合は毎回違う値が生成されていました。