#include #include #include class thing { public: thing( int a_, int b_, int c_ ) : a(a_), b(b_), c(c_) {} public: int a; int b; int c; }; class cmpthings { public: bool operator() ( const thing& lhs, const thing& rhs ) const { return lhs.a > rhs.a; } bool operator() ( const thing& lhs, const thing& rhs ) { return lhs.a > rhs.a; } }; int main(){ cmpthings ord; boost::heap::skew_heap> vpq(ord); vpq.emplace(5,6,7); }