我现在正在学习多线程,并想使用std :: scoped_lock,但是Microsoft Visual Studio 2017显示错误消息
命名空间“ std”没有成员“ scoped_lock”
通过右键单击项目名称->属性-> C / C ++->语言-> C ++语言标准-> / std:c ++ 17,确保我使用的是C ++ 17。 我搜索了google,但找不到任何解决方案。
#include <iostream>
#include <mutex>
#include <string>
#include <thread>
void PrintMessage(const std::string& message)
{
static std::mutex sMutex;
std::scoped_lock<std::mutex> lock(sMutex);
std::cout << message << std::endl;
}
我想使用std :: scoped_lock而不会出现错误消息。