
Dear All, I am a newbie with multi_index container. I need to store the following data structure in the multi_index_container: ************************************* #if !defined(NDEBUG) #define BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING #define BOOST_MULTI_INDEX_ENABLE_SAFE_MODE #endif #include <boost/multi_index_container.hpp> #include <boost/multi_index/member.hpp> #include <boost/multi_index/ordered_index.hpp> #include <algorithm> #include <iostream> #include <iterator> #include <string> using boost::multi_index_container; using namespace boost::multi_index; struct base { int base_data; }; struct child : public base { int child_data; }; struct base_data{ }; typedef multi_index_container < child, indexed_by< ordered_non_unique< tag<base_data>, BOOST_MULTI_INDEX_MEMBER(child, int, base_data) > >
child_set;
int main() { child_set cs; return 0; } *************************************** If i try and compile the above code, I get the following error test.cpp:33: error: could not convert template argument &base::base_data to int child::* test.cpp:33: error: template argument 2 is invalid test.cpp:34: error: template argument 1 is invalid test.cpp:35: error: template argument 2 is invalid test.cpp:35: error: invalid type in declaration before ; token I have looked up the examples, but I can find any example for structs which are inherited. Can someone help? Regards, Sunil