Boost 子类成员的多索引成员

Boost 子类成员的多索引成员,boost,multi-index,Boost,Multi Index,我无法将子类成员定义为索引成员 这可能吗 对于以下代码 namespace bmi = boost::multi_index; namespace bip = boost::interprocess; struct UsersKey { uint64_t IMSI; }; struct UsersVal { uint64_t IMSI; }; struct HashEntry{ UsersKey key; UsersVal val; } typedef b

我无法将子类成员定义为索引成员
这可能吗
对于以下代码

namespace bmi = boost::multi_index;
namespace bip = boost::interprocess;

struct UsersKey {
    uint64_t IMSI;
};

struct UsersVal {
    uint64_t IMSI;
};

struct HashEntry{
    UsersKey key;
    UsersVal val;
}

typedef bmi::hashed_unique<bmi::tag<struct IMSI_tag>,  bmi::member<HashEntry, uint64_t , &HashEntry::UsersKey::IMSI>,  boost::hash<uint64_t>, std::equal_to<uint64_t> > hashed_by_IMSI;


typedef 
  bmi::indexed_by<  hashed_by_IMSI > UsersKey_hash_indices;

 typedef boost::multi_index::multi_index_container<
      HashEntry,
      UsersKey_hash_indices>
    > GlobalHash;

这里是联机代码

的链接。成员函数语法的C++指针不允许在这里指定成员,正如您在这里所做的那样。一个简单的选择是使用提供的密钥提取程序,如中所示

最好的

error: no member named 'UsersKey' in 'HashEntry'; did you mean simply 'UsersKey'?