我正在尝试使用boost python中的map_indexing_suite实用程序包装boost :: 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。
答案 0 :(得分:3)
Boost.Python在v.1.55之前不支持std :: unordered_map和移动语义(参见Boost版本1.55.0发行说明,“多索引容器”部分)。 因此,您可以使用最新版本或下一个版本中的一个: