Не работает random_device

251
11 мая 2018, 14:31

Имеется следующий код:

    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 - работает, но почему не работает код выше?

Answer 1

Вот похожий вопрос из английского SO. Если кратко, то насколько я понимаю, в MingW для Windows еще не реализован random_device. Рекомендуют использовать версию из boost.

READ ALSO
QT 5.10.1[Static mingw32] + MySQL. QMYSQL driver not loaded

QT 5.10.1[Static mingw32] + MySQL. QMYSQL driver not loaded

Никак не получается подключить MySQL к qt, использую Mingw32 со статической линковкойОшибка: QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QODBC QODBC3

185
Сборка OpenCV, MSVC15

Сборка OpenCV, MSVC15

Столкнулся с такой проблемой при сборке OpenCV, вчера собирал её без CUDA и она собиралась нормальноСегодня после установки CUDA не могу нормально...

199
Определение размера fstream открытого с флагом ios::binary

Определение размера fstream открытого с флагом ios::binary

Естьtxt файл, необходимо считать его размеры, после этого побайтно переписать данные

225