1

これが私のシナリオです

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> > >)'

問題はどこだ ?

4

1 に答える 1

1

condition_variable::wait()単一の引数を受け入れます

void wait(boost::unique_lock<boost::mutex>& lock)

または述語タイプの2つの引数の場合

template<typename predicate_type> void wait(boost::unique_lock<boost::mutex>& lock, predicate_type pred)

いずれの場合も、最初の引数は、例のようにポインターではなく参照です。

于 2012-07-22T13:41:41.500 に答える