C ++ мьютекс в пространстве имен std не называет тип

Я пишу простую программу на C ++, чтобы продемонстрировать использование блокировок. Я используюcodeblocks а такжеgnu gcc компилятор.

 #include <iostream>
 #include <thread>
 #include <mutex>
 using namespace std;
 int x = 0; // shared variable

 void synchronized_procedure()
 {
    static std::mutex m;
    m.lock();
    x = x + 1;
    if (x < 5)
    {
       cout<<"hello";
    }
    m.unlock();

 }

int main()
{

   synchronized_procedure();
   x=x+2;
   cout<<"x is"<<x;
}

Я получаю следующую ошибку:mutex in namespace std does not name a type.

Почему я получаю эту ошибку? Разве компилятор не поддерживает использование блокировок?

Ответы на вопрос(9)

Ваш ответ на вопрос