2013-02-24 69 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