'mutex': is not member of 'std' msvc 错误

'mutex': is not a member of 'std' error in msvc

驻留在我的一个头文件中的以下代码产生了错误。当互斥锁在源文件中并且我将它与 extern 作为全局变量一起使用时,没有问题。谢谢!

#include <memory>

struct MyStruct
{
    std::mutex m;
};

您想要包含 std::mutex 所在的文件,在 <mutex>

#include <mutex>

struct MyStruct
{
    std::mutex m;
}

您是否包含了互斥量 header? 如果不是,这就是编译器正确抱怨的原因:它找不到互斥声明...

读这个https://en.cppreference.com/w/cpp/thread/mutex 然后添加这个 include

#include <mutex>