アプリケーションでキャッシュをサポートするために、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
}
このクラッシュの原因は何でしょうか。
これは、アプリケーションで発生している場所とクラッシュです。