'mutex' не был объявлен в этой области. Работа с кодом VS с использованием компилятора MinGW - PullRequest
0 голосов
/ 29 июня 2018

Здравствуйте, я пытаюсь скомпилировать один из моих C ++ проектов. Но при компиляции один из заголовков показывает 9 ошибок. Ну, я не знаю, как мой проект связан с обработкой мьютексов. Я использую код Visual Studio. Я приложу код и ошибки. Пожалуйста, ознакомьтесь с тем, как исправить эти ошибки.

  //
  // Copyright (C) 2011-2017 Denis V Chapligin, Martin Hrabovsky
  // Distributed under the Boost Software License, Version 1.0.
  // (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 //

  //
 // Copyright (C) 2011 Denis V Chapligin
 // Distributed under the Boost Software License, Version 1.0.
 // (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 //

 #ifndef STLCACHE_LOCK_EXCLUSIVE_HPP_INCLUDED
 #define STLCACHE_LOCK_EXCLUSIVE_HPP_INCLUDED

 #include <mutex>
 #include<thread>
 using namespace std;

 namespace stlcache {
/*!
 * \brief An exclusive only implementation of locking.
 * 
 * This implementation supports only mutually exclusive locking, so only a 
 single thread at a time can access the \link stlcache::cache cache \endlink
 */

class lock_exclusive : public lock<unique_lock<mutex>, unique_lock<mutex> > {
      mutable mutex mtx;
public:
    write lockWrite() const { 
        return unique_lock<mutex>(mtx); 
    }

    read lockRead() const { 
        return unique_lock<mutex>(mtx);
    }
};
}

#endif /* STLCACHE_LOCK_EXCLUSIVE_HPP_INCLUDED */

errors:
'mutex' was not declared in this scope
template argument 1 is invalid
'mutex' was not declared in this scope
template argument 1 is invalid
template argument 1 is invalid
template argument 2 is invalid
'mutex' does not name a type
'write' does not name a type
'read' does not name a type
...