我有一个结构:
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 类型的对象的地址编写密钥规范。
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;
谢谢。