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