Я, вероятно, прилагаю больше усилий, чем необходимо, но кого это волнует, давайте попробуем решить эту проблему: я хотел бы использовать генератор "random_device" из <random>
в моем коде.Но это может быть недоступно в некоторых системах (в соответствии со спецификациями), поэтому я хотел бы иметь mt19937 в качестве резервной копии (но какой бы генератор я ни использовал, мне бы хотелось, чтобы в конце было одно и то же имя переменной).Теперь я могу попробовать random_device, чтобы увидеть, работает ли он, но что тогда?Если я использую оператор if, мой генератор исчезнет после if.Если я это объявлю, я не смогу потом изменить тип.Ниже кода, который не работает.
bool random_working=true;
try
{
random_device rd; //throws exception when not able to construct
}
catch(exception& e)
{
cout<<"Exception: ''random_device'' not working, switching back to mt19937"<<endl;
random_working=false;
}
if(random_working)
random_device mc; //for _M_onte-_C_arlo
else
mt19937 mc;