Ich versuche multimap zum ersten Mal zu verwenden, aber meine App wird nicht kompilieren. TIA Paul ..std :: multimap kompilieren Fehler
// 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: \ Programme \ Microsoft Visual Studio 9.0 \ vc \ include \ Dienstprogramm (57): Fehler C2664: ‚std :: map < _Kty, _Ty> :: Karte (const std :: weniger < _Ty> &)‘: kann nicht Parameter 1 von konvertieren 'const std :: pair < _Ty1, _Ty2>' auf 'const std :: weniger < _Ty> &'
1> mit 1> [ 1> _Kty = CString, 1> _Ty = CString 1>] 1> und 1> [ 1> _Ty1 = LPCWSTR, 1> _Ty2 = LPCWSTR 1>] 1> und 1> [ 1> _Ty = CString 1>] 1> Grund: kann nicht von ‚const std konvertieren :: pair < _Ty1, _Ty2>‘auf 'const std :: weniger < _Ty> 1> mit 1> [ 1> _Ty1 = LPCWSTR, 1> _Ty2 = LPCWSTR 1>] 1> und 1> [ 1> _Ty = CString 1>] 1> Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht sein 1> c: \ dev \ projekte \ migrator \ jobbuilder \ jobbuilder \ ini.cpp (55): siehe Verweis auf die Funktion template instantiation 'std :: pair < _Ty1, _Ty2> :: pair> (const std :: pair > &)‘ 1> mit 1> [ 1> _Ty1 = konst CString, 1> _Ty2 = std :: map 1>]
========== Build compiliert werden : 0 erfolgreich, 1 fehlgeschlagen, 0 aktuell, 0 übersprungen ==========
Hinweis: Sie werden _ den Eintrag für Abschnitt ersetzen, nicht aktualisieren. – xtofl
Aber DepartmentRecord ist eine Multimap. Also würde kein neuer Eintrag hinzugefügt werden? – AngryWhenHungry