Bonjour,

je souhaite utiliser une multimap pour associer un chaine avec une classe comme montré ci dessous :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
class CDataInfo  
{
public:
	CDataInfo()  { };
	~CDataInfo() { };
 
	int			nSFID;
	int			nRecNo;
	int			nRecLen;
	int			nRecOffset;
	int			nDataType;
	int			nDataLen;
};
 
typedef multimap<CString, CDataInfo>::iterator CDataListIter; 
class CDataList
{
public:
	CDataList() { m_It = NULL;};
	~CDataList() { };
 
	void Clear() { m_DataInfoList.clear(); }
 
	void AddTag( CString strTag, int nSFID, int nRecNo, 
		int nRecLen, int nRecOffset, int nDataType, int nDataLen)
	{
		m_DataInfo.nSFID = nSFID;
		m_DataInfo.nRecNo = nRecNo;
		m_DataInfo.nRecLen = nRecLen;
		m_DataInfo.nRecOffset = nRecOffset;
		m_DataInfo.nDataType = nDataType;
		m_DataInfo.nDataLen = nDataLen;
 
		m_DataInfoList.insert(strTag, DataInfo); ????????? ERREUR  DE COMPIL
 
 
 
	}
 
 
 
	CDataListIter GetHead() { return m_DataInfoList.begin();}	
	CDataListIter GetTail() { return m_DataInfoList.end(); }
	long		 GetSize()  { return m_DataInfoList.size(); }
 
 
 
protected:
	CDataInfo		m_DataInfo;
	multimap<CString, CDataInfo>	m_DataInfoList;
	CDataListIter	m_It;
};


J'ai une erreur de compilation :

d:\projet en cours\borne_160805\carddata.h(152) : error C2664: 'class std::_Tree<class CString,struct std::pair<class CString const ,class CDataInfo>,struct std::multimap<class CString,class CDataInfo,struct std::less<class CString>,class std::alloc
ator<class CDataInfo> >::_Kfn,struct std::less<class CString>,class std::allocator<class CDataInfo> >::iterator __thiscall std::multimap<class CString,class CDataInfo,struct std::less<class CString>,class std::allocator<class CDataInfo> >::insert(cl
ass std::_Tree<class CString,struct std::pair<class CString const ,class CDataInfo>,struct std::multimap<class CString,class CDataInfo,struct std::less<class CString>,class std::allocator<class CDataInfo> >::_Kfn,struct std::less<class CString>,clas
s std::allocator<class CDataInfo> >::iterator,const struct std::pair<class CString const ,class CDataInfo> &)' : cannot convert parameter 1 from 'class CString' to 'class std::_Tree<class CString,struct std::pair<class CString const ,class CDataInfo
>,struct std::multimap<class CString,class CDataInfo,struct std::less<class CString>,class std::allocator<class CDataInfo> >::_Kfn,struct std::less<class CString>,class std::allocator<class CDataInfo> >::iterator'
No constructor could take the source type, or constructor overload resolution was ambiguous

Et je ne comprends pas exactement pourquoi la syntaxe n'est pas bonne.