2013-02-24 103 views
0

我想在boost python中使用map_indexing_suite實用程序封裝boost :: unordered_map。但是,任何時候我嘗試這樣做,我遇到的錯誤在boost boost python中使用map_indexing_suite封裝字符串/ shared_ptr unordered_map

Error 26 error C2039: 'key_comp' : is not a member of 'boost::unordered::unordered_map<K,T>' c:\programming_libraries\cpp_libraries\boost_1_49_0\boost\python\suite\indexing\map_indexing_suite.hpp 155 

這裏的包裹我做

class_<boost::unordered_map<std::string, boost::shared_ptr<Character::BaseCharacter> > >("BasePartyMemberMap") 
       .def(map_indexing_suite<boost::unordered_map<std::string, boost::shared_ptr<Character::BaseCharacter> > >()) 
       ; 

我假設這事做與unordered_map使用結合shared_ptr。如果我使用std :: map,它可以正常工作。我希望有人能告訴我問題是什麼,以及它是否可以解決。如果我能避免它,我寧願不將結構切換到std :: map。

回答

3

Boost.Python不支持std :: unordered_map和直到v.1.55的移動語義(請參閱Boost版本1.55.0發行說明,「多索引容器」部分)。 所以,你既可以使用最新版本,或者imlement下一之一:

+0

luart,我看不到發行說明你指的是在1.55 re boost :: python – MMM 2015-09-29 12:25:11