どこかに単純なタイプミスがあるかどうかはわかりませんが、タプルの両端キューをソートする際に問題が発生しています。
したがって、私の両端キューは次のようになります。
std::deque<boost::tuple<unsigned int, unsigned int> > messages;
そして、私はソートするための私の呼び出しがあります:
sort(messages.begin(), messages.end(), msg_sort_criteria);
そして私のソート機能:
bool msg_sort_criteria(boost::tuple<unsigned int, unsigned int> lhs, boost::tuple<unsigned int, unsigned int> rhs)
{
return boost::get<1>(lhs) < boost::get<1>(rhs);
}
何が起こるかというと、stl_heap.hとstl_algo.hでエラーが発生します。例えば、
呼び出されたオブジェクトタイプ'
<bound member function type>
'は、関数または関数パラメータではありません。
編集:
明確にするために、これはすべてクラスのプライベートメンバー内で行われます。
class Messages::MessageImpl{
private:
std::deque<boost::tuple<unsigned int, unsigned int> > messages;
bool msg_sort_criteria(boost::tuple<unsigned int, unsigned int> lhs, boost::tuple<unsigned int, unsigned int> rhs)
{
return boost::get<1>(lhs) < boost::get<1>(rhs);
}
void fn()
{
sort(msg_queue_.begin(), msg_queue_.end(), msg_sort_criteria);
}
}