#define BOOST_MULTI_INDEX_ENABLE_SAFE_MODE #include #include #include #include struct query { query(unsigned int id_, unsigned short pr_, unsigned short type_, unsigned short status_); virtual ~query(); enum estatus{WAITING=0, WORKING=1, BUFFERED=2}; unsigned int id; unsigned short pr; unsigned short type; unsigned short status; typedef boost::shared_ptr pointer; }; struct tid{}; using namespace boost::multi_index; struct query_rank_key:composite_key< query::pointer, member, member, member >{}; typedef multi_index_container< query::pointer, indexed_by< ordered_non_unique< query_rank_key #if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) ,composite_key_result_less #endif >, ordered_unique< tag,member > > > queue_set; class queue : public queue_set { public: queue(){}; virtual ~queue(){}; typedef boost::shared_ptr pointer; }; int main() { queue q; }