マップにペアを挿入しようとすると、不変性の問題が発生します。コンパイラエラーは次のとおりです。
c:\program files (x86)\microsoft visual studio 11.0\vc\include\xutility(2089) : see reference to function template instantiation 'std::pair<_Ty1,_Ty2> &std::pair<_Ty1,_Ty2>::operator =(const std::pair<_Ty1,_Ty2> &)' being compiled
1> with
1> [
1> _Ty1=const Assets::AssetId,
1> _Ty2=std::shared_ptr<Assets::Material>
1> ]
1> c:\fusionengine\meshgl.cpp(85) : see reference to class template instantiation 'std::pair<_Ty1,_Ty2>' being compiled
1> with
1> [
1> _Ty1=const Assets::AssetId,
1> _Ty2=std::shared_ptr<Assets::Material>
1> ]
エラーの原因となっている行は次のとおりです。
m_materials.insert( MaterialsMap::value_type(pMaterial->AssetId(), pMaterial) );
m_materialsマップは次のように宣言されています。
typedef std::map< Assets::AssetId, std::shared_ptr<Material> > MaterialsMap;
typedef std::pair< Assets::AssetId, std::shared_ptr<Material> > MtlPair;
MaterialsMap m_materials;
エラー1エラーC2166:l値はconstオブジェクトc:\ program files(x86)\ microsoft visual studio 11.0 \ vc \ include\utilityを指定します114
誰かが私がこの問題を解決する方法を説明できますか?