Hi,

I am trying to create a ClassX using "boost::multi_index" and I was successfully able to create a ClassX like,

typedef boost::multi_index_ClassX<
  ClassX*,
  boost::multi_index::indexed_by<
boost::multi_index::hashed_unique<  
    boost::multi_index::const_mem_fun<ParentOfClassX, Int64, &ParentOfClassX::getKey1>, 
                boost::multi_index::const_mem_fun<ParentOfClassX, Int64, &ParentOfClassX::getKey2>,
>
>
> MultiIndexedClassX;

This compiles perfectly with no problems. 

I am writing the code and compiling with Visual Studio 2005 and have included,

#include <boost/multi_index_container.hpp>
#include "boost/multi_index/hashed_index_fwd.hpp" 
#include <boost/multi_index/mem_fun.hpp>

and have defined namespaces,

using namespace boost::multi_index;
using boost::multi_index::multi_index_container;
using boost::multi_index::hashed_unique;
using boost::multi_index::indexed_by;

But when I create an object of that type like,

MultiIndexedClassX sample;

I get a big list compilation errors like,

c:\code\common\lib\boost\boost\multi_index\detail\node_type.hpp(44) : error C2903: 'node_class' : symbol is neither a class template nor a function template
        c:\code\common\lib\boost\boost\mpl\aux_\preprocessed\plain\apply_wrap.hpp(49) : see reference to class template instantiation 'boost::multi_index::detail::index_node_applier::apply<IndexSpecifierIterator,Super>' being compiled
        with
        [
            IndexSpecifierIterator=boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::hashed_unique<boost::multi_index::const_mem_fun<ParentOfClassX,GKey,ParentOfClassX::getKey1>,boost::multi_index::const_mem_fun<ParentOfClassX,Vs64,ParentOfClassX::getKey2>>>,0>,
            Super=boost::multi_index::detail::index_node_base<ClassX *,std::allocator<ClassX *>>
        ]
        c:\code\common\lib\boost\boost\mpl\aux_\preprocessed\plain\bind.hpp(207) : see reference to class template instantiation 'boost::mpl::apply_wrap2<F,T1,T2>' being compiled
        with
        [
            F=boost::multi_index::detail::index_node_applier,
            T1=boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::hashed_unique<boost::multi_index::const_mem_fun<ParentOfClassX,GKey,ParentOfClassX::getKey1>,boost::multi_index::const_mem_fun<ParentOfClassX,Vs64,ParentOfClassX::getKey2>>>,0>,
            T2=boost::multi_index::detail::index_node_base<ClassX *,std::allocator<ClassX *>>
        ]
        c:\code\common\lib\boost\boost\mpl\aux_\preprocessed\plain\apply_wrap.hpp(49) : see reference to class template instantiation 'boost::mpl::bind2<F,T1,T2>::apply<U1,U2>' being compiled
        with
        [
            F=boost::multi_index::detail::index_node_applier,
            T1=boost::mpl::_2,
            T2=boost::mpl::_1,
            U1=boost::multi_index::detail::index_node_base<ClassX *,std::allocator<ClassX *>>,
            U2=boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::hashed_unique<boost::multi_index::const_mem_fun<ParentOfClassX,GKey,ParentOfClassX::getKey1>,boost::multi_index::const_mem_fun<ParentOfClassX,Vs64,ParentOfClassX::getKey2>>>,0>
        ]
        c:\code\common\lib\boost\boost\mpl\aux_\preprocessed\plain\apply.hpp(63) : see reference to class template instantiation 'boost::mpl::apply_wrap2<F,T1,T2>' being compiled
        with
        [
            F=boost::mpl::bind2<boost::multi_index::detail::index_node_applier,boost::mpl::_2,boost::mpl::_1>,
            T1=boost::multi_index::detail::index_node_base<ClassX *,std::allocator<ClassX *>>,
            T2=boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::hashed_unique<boost::multi_index::const_mem_fun<ParentOfClassX,GKey,ParentOfClassX::getKey1>,boost::multi_index::const_mem_fun<ParentOfClassX,Vs64,ParentOfClassX::getKey2>>>,0>
        ]
        c:\code\common\lib\boost\boost\mpl\aux_\preprocessed\plain\reverse_iter_fold_impl.hpp(58) : see reference to class template instantiation 'boost::mpl::apply2<F,T1,T2>' being compiled
        with
        [
            F=boost::mpl::bind2<boost::multi_index::detail::index_node_applier,boost::mpl::_2,boost::mpl::_1>,
            T1=boost::multi_index::detail::index_node_base<ClassX *,std::allocator<ClassX *>>,
            T2=boost::mpl::v_iter<boost::mpl::vector1<boost::multi_index::hashed_unique<boost::multi_index::const_mem_fun<ParentOfClassX,GKey,ParentOfClassX::getKey1>,boost::multi_index::const_mem_fun<ParentOfClassX,Vs64,ParentOfClassX::getKey2>>>,0>
        ]
   

Thanks,
Ram