为什么标识符"MutexType"未定义?



尝试使用boost库从文档创建系统范围的互斥

#include <boost/interprocess/sync/interprocess_mutex.hpp>
#include <boost/interprocess/sync/scoped_lock.hpp>
#include <boost/interprocess/sync/named_mutex.hpp>
using namespace boost::interprocess;
MutexType  mtx;

int main()
{
return 0;
}

我正在运行visualstudio代码,并使用msys2-MINGW64环境编译我的代码,就像g++ mutexes.cpp -lboost_system一样,但这似乎不起作用,我在bash控制台中收到了这个错误

mutexes.cpp:8:1: error: 'MutexType' does not name a type
8 | MutexType  mtx;
| ^~~~~~~~~

链接的文档特别表示"任何互斥类型":

//Let's create any mutex type:
MutexType mutex;

接下来是一个具体的、更详细的匿名互斥体示例和命名互斥体示例。

符合条件的类型记录在scoped_lock:中

scoped_lock用于执行Mutex的锁定、解锁、尝试锁定和定时锁定(递归或非递归(任务。Mutex不需要提供所有这些功能。如果scoped_lock的客户端不使用Mutex不提供的功能,则不会对造成伤害

在实践中,所需的最小有用接口将是标准库BasicLockable概念的接口,尽管许多互斥实现也为LockableMutex概念建模。

最新更新