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'?