
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