gpt4 book ai didi

c++ - boost.multiindex 和值的地址作为键

转载 作者:行者123 更新时间:2023-11-28 00:43:24 25 4
gpt4 key购买 nike

我有一个结构:

struct user_context {
struct user_id;
struct user_name;
struct user_address;

boost::int64_t user_id() const;
const std::string& user_name() const;
};

我想使用 boost.multiindex具有三个索引:1)user_id, 2)user_name, 3)user_context 对象的地址

我不知道,user_context类型的对象地址的key规范怎么写。

typedef std::shared_ptr<user_context> user_context_ptr;

typedef boost::multi_index::multi_index_container<
user_context_ptr
,boost::multi_index::indexed_by<
boost::multi_index::hashed_unique<
boost::multi_index::tag<user_context::user_id>
,boost::multi_index::const_mem_fun<
user_context
,boost::int64_t
,&user_context::user_id
>
>,
boost::multi_index::hashed_unique<
boost::multi_index::tag<user_context::user_name>
,boost::multi_index::const_mem_fun<
user_context
,const std::string&
,&user_context::user_name
>
>,
boost::multi_index::hashed_unique<
boost::multi_index::tag<user_context::user_address>
,boost::multi_index:: ??? < // <<<
user_context
,user_context* (???) // <<<
,??? // <<<
>
>
>
> users_container;

谢谢。

最佳答案

使用 boost::multi_index::identity<user_context_ptr> : 如果两个共享指针指向同一个对象,则它们是等价的(就像常规指针一样。)

关于c++ - boost.multiindex 和值的地址作为键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17591294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com