我正在使用 Boost 多索引映射容器来支持我的应用程序中的缓存。但在插入过程中,我看到应用程序崩溃。我的代码看起来有点像这样
class MultiIndexMap
{
public:
MultiIndexMap();
~MultiIndexMap();
string _uid;
string _name1;
string _name2;
};
/**
* Tags for accessing corresponding indices
*/
class uid{};
class name1{};
class name2{};
/**
* - a unique index sorted by MultiIndexMap::_uid,
* - a non-unique index sorted by MultiIndexMap::name1,
* - a non-unique index sorted by MultiIndexMap::name2.
*/
typedef multi_index_container<
MultiIndexMap,
indexed_by<
ordered_unique< tag<uid>, BOOST_MULTI_INDEX_MEMBER(MultiIndexMap,string,_uid)>,
ordered_non_unique< tag<name1>,BOOST_MULTI_INDEX_MEMBER(MultiIndexMap,string,_name2)>,
ordered_non_unique< tag<name2>, BOOST_MULTI_INDEX_MEMBER(MultiIndexMap,string,_name2)> > > MultiIndexMap_set;
void Insert(MultiIndexMap_set& s, MultiIndexMap& entry)
{
MultiIndexMap_set::nth_index<0>::type& uid_index= s.get<0>();
uid_index.insert(entry); <<-- crashing at this line
}
这次崩溃的原因可能是什么。
这是我在我的应用程序中得到的位置和崩溃。