Я впервые пытаюсь использовать multimap, но мое приложение не компилируется. TIA Paul ..
// 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: \ program files \ microsoft visual studio 9.0 \ vc \ include \ utility (57): ошибка C2664: 'std :: map ‹_Kty, _Ty> :: map (const std :: less ‹_Ty> &)': невозможно преобразовать параметр 1 из 'const std :: pair ‹_Ty1, _Ty2>' в 'const std :: less ‹_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 :: pair ‹_Ty1, _Ty2>' в 'const std :: less ‹_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> [ 1> _Ty1 = const CString, 1> _Ty2 = std :: map 1>]
========== Сборка: 0 выполнено успешно, 1 не выполнено, 0 обновлено, 0 пропущено ==========