我在将子类成员定义为索引成员时遇到问题 这可能吗 对于以下代码
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;
我收到以下错误
error: no member named 'UsersKey' in 'HashEntry'; did you mean simply 'UsersKey'?
的链接
答案 0 :(得分:1)
指向成员函数语法的C ++指针不允许在此处指定成员内的成员。一个简单的选择是使用提供的global_fun
密钥提取器,如http://coliru.stacked-crooked.com/a/c57625bfb1d5acfa
最佳,