初めてマルチマップを使用しようとしていますが、私のアプリケーションはコンパイルされません。 TIAポール..std :: multimapコンパイルエラー
// file dept.h
typedef std::multimap <CString, std::map< CString, CString> > _DeparmentRecord; // also tryied replacing CString with LPCWSTR
_DeparmentRecord DeparmentRecord;
// file dept.cpp
DWORD CIni::AddNameValue(LPCWSTR Section, LPCWSTR Name, LPCWSTR Value)
{
DeparmentRecord.insert(std::make_pair (Section, std::make_pair(Name, Value))); <-- error here
}
C:\プログラムファイルは、MicrosoftのVisual Studio 9.0 \ VCの\を\は\ユーティリティ(57)が含まれます:エラーC2664:「STD ::マップ< _Kty、_Ty> ::マップ(のconstのstd _Ty> &)< ::以下」:からパラメータ1を変換することはできません 'CONSTのstd ::ペア< _Ty1、_Ty2> CONST STD' に '::以下< _Ty> &'
1> 1> [ 1> _Kty = CString、 1> _Ty = CString 1>] 1> 1> 1> _Ty1 = LPCWSTR、 1> _Ty2 = LPCWSTR 1>] 1>及び 1> [ 1> _Ty = CStringの 1>] 1>理由:CONST STD」から変換することはできません::対< _Ty1、_Ty2>」 'へのconstのstd ::以下< _Ty>' 1>と 1> [ 1> _Ty1 = LPCWSTR、 1> _Ty2 = LPCWSTR 1>] 1>及び 1> [ 1> _Ty = CString 1>] 1>この変換を実行できるユーザー定義変換演算子はありません。または、演算子を使用できません。 1> c:¥dev¥projects¥migrator¥jobbuilder¥jobbuilder¥ini.cpp(55):関数テンプレートのインスタンス化の参照を参照してください 'std :: pair < _Ty1、_Ty2> :: pair>(const std :: pair > &)は」 1> [ 1> _Ty1 =一定のCString、 1> _Ty2 = STD ::マップ 1>]
==========ビルドで> 1コンパイルされています:0成功、1失敗、0最新、0スキップ
注:セクションのエントリは_replace_、更新しません。 – xtofl
しかしDepartmentRecordはマルチマップです。だから新しいエントリーは追加されませんか? – AngryWhenHungry