Имеется следующий код:
std::random_device rd;
std::uniform_int_distribution<int> dist(0, N_BRICK_KIND - 1);
figure = static_cast<BrickType>(dist(rd));
На линуксе работает без проблем, но вот когда компилирую под винду (кросскомпиляция с помощью mingw) и запускаю под wine, то этот код приводит к одним и тем же результатам, всегда. При этом результат можно изменить только если перекомпилировать прогу. Заменил этот код на си-шный srand - rand - работает, но почему не работает код выше?
Вот похожий вопрос из английского SO. Если кратко, то насколько я понимаю, в MingW для Windows еще не реализован random_device. Рекомендуют использовать версию из boost.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей