Я пытаюсь генерировать случайные числа в моей программе на C ++. Он работает на моем ноутбуке, который работает под управлением Windows. Однако, когда я пытаюсь скомпилировать свою программу на другом компьютере, я получаю следующие сообщения об ошибках:
error: ‘mt19937_64’ was not declared in this scope
error: expected ‘;’ before ‘randomGenerator’
соответствующий следующий кусок кода:
double** Euler::startSimulation(void) {
mt19937_64 randomGenerator (mySeed);
/* More unshown code below... */
}
Я компилирую свой код из командной строки, используя g ++ с флагом -std = c ++ 0x. Как исправить эту проблему, чтобы мой код мог правильно скомпилироваться и работать на обоих компьютерах.
MT19937 (_64) оба калиброваны в Пространство имен.
Чтобы сделать их доступными, вы должны указать компилятору, где их искать. Используйте либо std::mt19937_64 RdmGeneratorObject(seed);
руда дает using namespace std;
соответственно, перед открытием объявления функции или main.
Других решений пока нет …