这是我的情景
boost::condition_variable _condition;
boost::unique_lock<boost::mutex> lock(_mutex);
boost::detail::atomic_count _count;
.........
_condition.wait(&lock, boost::bind(std::less<int>(), boost::ref(_count), max));
获取错误
error: no matching function for call to 'boost::condition_variable::wait(boost::unique_lock<boost::mutex>*, boost::_bi::bind_t<boost::_bi::unspecified, std::less<int>, boost::_bi::list2<boost::reference_wrapper<boost::detail::atomic_count>, boost::_bi::value<short unsigned int> > >)'
问题出在哪里?
答案 0 :(得分:1)
condition_variable::wait()
接受single argument
的两个参数案例
void wait(boost::unique_lock<boost::mutex>& lock)
template<typename predicate_type> void wait(boost::unique_lock<boost::mutex>& lock, predicate_type pred)
在任何一种情况下,第一个参数都是引用而不是示例中的指针。