нить не является членом std c ++ - PullRequest
0 голосов
/ 24 августа 2018

У меня проблема с тем, что я не могу использовать потоки, потому что я получаю сообщение об ошибке "'thread' не является членом 'std'".

Я использую MinGW с c ++ 11 в качестве флага компилятора. На небольшой программе, которую я сделал вчера, она работала нормально. По сути, я хочу сыграть "гудок", играя в небольшую игру с угадыванием псевдослучайных чисел.

int rnumber, guess, maxrand;

std::thread t1(pinkpanther);
t1.detach();

cout << "What do you want the maximum Number to be? ";
cin >> maxrand;

rnumber = randy(maxrand);

//Start
cout << endl << "This is a game!" << endl << "You have 5 tries to guess the random number generated by this program, have fun" << endl;

for (int i = 0; i < 5; i = i + 1)
{
    cout << "Your guess: ";
    cin >> guess;

    if (guess < rnumber)
    {
        cout << "Your guessed number is smaller than the answer! Try again!" << endl << endl;
    }
    else if (guess > rnumber)
    {
        cout << "Your guessed number is bigger than the answer! Try again!" << endl << endl;
    }
    else
    {
        cout << "you guessed the right number!";
        break;
    }
}





return 0;

это всегда дает мне ту же ошибку ||In function 'int main()':| 'thread' is not a member of 'std'| 't1' was not declared in this scope| ||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===| и я действительно не знаю, почему больше

Редактировать: pinkpanther () просто играет песню pinkpanther, которую я нашел в "звуковых сигналах"

Edit2: у меня есть пара библиотек (windows, thread, ctime и ctdlib)

Ответы [ 2 ]

0 голосов
/ 24 августа 2018

Какую сборку MinGW вы использовали? Если у вас есть модель с потоками Win32, она не поддерживает потоки C ++ 11; вместо этого вам следует взять его с помощью потоковой модели POSIX (на основе winpthreads), но учтите, что она довольно глючная.

0 голосов
/ 24 августа 2018

Код, который вы предоставляете, никогда не делает #include <thread>.Так как же компилятор должен знать, что такое std::thread?

Исправьте вашу проблему, добавив #include <thread> в начало вашего файла.

Также убедитесь, что вы используете компилятор, которыйна самом деле поддерживает C ++ 11 (или позже) и std::thread.

...