0

我正在尝试使用 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 。

4

1 回答 1

3

Boost.Python 在 v.1.55 之前不支持 std::unordered_map 和移动语义(参见 Boost 版本 1.55.0 发行说明,“多索引容器”部分)。因此,您可以使用最新版本或实施以下之一:

于 2014-01-11T05:58:47.637 回答