
//boost #include <boost/multi_index_container.hpp> #include <boost/multi_index/hashed_index.hpp> #include <boost/multi_index/member.hpp> #include "boost/multi_index/key_extractors.hpp" using namespace ::boost; using namespace ::boost::multi_index; #include <string> struct Peer { std::string userid; int age()const {return age_;} private: int age_; }; struct CPeer:public Peer { int index; }; struct Peer_age_extractor { typedef int result_type; const int operator()(const CPeer& peer)const { return peer.age(); } }; struct userid{}; struct age{}; typedef multi_index_container< CPeer, indexed_by< hashed_unique<tag<userid>,member<Peer,std::string,&Peer::userid> >, hashed_non_unique<tag<age>,const_mem_fun<Peer,int,&Peer::age> >// // hashed_non_unique<const_mem_fun<Peer,int,&Peer::age> > //without a tag will be ok. //hashed_non_unique<tag<age>,Peer_age_extractor > //this line with cause the same question.
CPeersType;
I get this in vs7.1 with sp1: ------ Build started: Project: multi_index1, Configuration: Debug Win32 ------ Compiling... hash_test.cpp f:\boost_1_34_0\boost\mpl\aux_\preprocessed\plain\apply_wrap.hpp(48) : fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'f:\vs70builds\6030\vc\Compiler\CxxFE\sl\P1\C\main.c', line 1164) Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more information Build log was saved at "file://g:\cpp\boost\multi_index1\Debug\BuildLog.htm" multi_index1 - 1 error(s), 0 warning(s) yet this can compile well in gcc 3.4. i really don't know why. many thanks for JOAQUIN LOPEZ MU?Z 's past help.;-) 百 万 玩 家 同 玩 的 乐 园,人 气 爆 发 的 梦 幻 西 游