Erreur conversion Visual 2005
	
	
		Je viens de convertir un projet Visual 2003 en 2005.
Le projet compilait sans problème sous visual 2003.
Après conversion, j'ai l'erreur suivante
	Citation:
	
		
		
			c:\program files\microsoft visual studio 8\vc\atlmfc\include\atlcom.h(5017) : error C2664: '_CopyVarMapToVariant::copy'*: impossible de convertir le paramètre 2 de 'const std::pair<_Ty1,_Ty2> *' en 'std::pair<_Ty1,_Ty2> *'
        with
        [
            _Ty1=const ATL::CAdapt<ATL::CComVariant>,
            _Ty2=ATL::CComVariant
        ]
        La conversion perd les qualificateurs
        c:\program files\microsoft visual studio 8\vc\atlmfc\include\atlcom.h(5004)*: lors de la compilation de la fonction membre '<Inconnu>' de la classe <Inconnu>
        c:\dev\components\msconfig\com\fielditem.h(20)*: voir la référence à l'instanciation de la classe modèle 'ATL::IEnumOnSTLImpl<Base,piid,T,Copy,CollType>' en cours de compilation
        with
        [
            Base=IEnumVARIANT,
            piid=& IID_IEnumVARIANT,
            T=VARIANT,
            Copy=_CopyVarMapToVariant,
            CollType=VarMap
        ]
			
		
	
 La classe qui semble poser problème est la suivante :
	Code:
	
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
   | #ifndef __Enumtypes__HH__
#define __Enumtypes__HH__
 
#include <map>
 
typedef std::map<CAdapt<CComVariant>, CComVariant> VarMap;
 
class _CopyVarMapToVariant
	{
	public:
		static HRESULT copy(VARIANT* pCopy, std::pair<const CAdapt<CComVariant>, CComVariant>* pIt)
		{
			CComVariant v = pIt->second;
			v.Detach(pCopy);
			return S_OK;
		}
		static void init(VARIANT* p) {VariantInit(p);}
		static void destroy(VARIANT* p) {VariantClear(p);}
	};
 
typedef IEnumOnSTLImpl<IEnumVARIANT, &IID_IEnumVARIANT, VARIANT, _CopyVarMapToVariant, VarMap> VarEnumImpl;
 
#endif | 
 Une idée??