boost :: lock不能在boost 1.53中编译

时间:2013-06-25 16:54:22

标签: c++ boost locking

我正在编译一个项目。它有以下几行:

boost::mutex::scoped_lock ml(m_meta_mut, boost::defer_lock);
    boost::mutex::scoped_lock tl(m_tables_mut, boost::defer_lock);
    boost::lock(ml, tl);

我在第三行得到lock is not a member of boost。我使用的是boost1.53(项目推荐1.49)

问题是什么

1 个答案:

答案 0 :(得分:3)

将我的评论转化为更完整的答案。 boost::lock()函数为defined in boost/thread/locks.hpp。当您看到编译器错误

  

错误:'lock'不是'boost'的成员

编译器无法在lock()命名空间中找到函数boost。 解决方案是在您正在编译的任何翻译单元中添加#include <boost/thread/locks.hpp>

我没有看到这个标题从boost 1.49改为1.53,但我看起来并不广泛。可能包括指令已经改变。

修改 在1.67

中仍然相同