0

我需要在我的模板类中使用 aboost::interprocess::mutex 在我的函数中,我以下面的方式声明了我的变量

  named_mutex mutex(open_only, m_name.c_str() 
  ,permissions(0666));

我不知道为什么我不能编译,我在下面得到一个错误。编译器怎么可能不使用正确的构造函数(它试图匹配具有 const 引用的构造函数)以及如何强制使用正确的构造函数?

    error: no matching function for call to   
    boost::interprocess::named_mutex::named_mutex(const 
    boost::interprocess::open_only_t&,   const char*, boost::interprocess::permissions)’
    /usr/local/include/boost/interprocess/sync/named_mutex.hpp:140: note: 
    candidates are: 
    boost::interprocess::named_mutex::named_mutex(boost::interprocess::open_only_t, const char*)
4

1 回答 1

1

接受 an 的构造函数open_only_t不接受权限参数。真的没有意义 - 你试图打开一个现有的互斥锁,而不是创建一个。

删除权限,它应该找到适当的重载。

于 2013-03-18T16:14:23.773 回答