Bonjour,
Un bout de code qui se compilait sans problème dans VC2003 pose problème dans VC2005...
C'est une histoire de constructeur implicite...mais sur un typedef...
Dans mon .h ..Début de déclaration de ma classe
Définition du constructeur dans mon .cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 class CProcessList { protected: typedef std::list<CProcess *> process_list; typedef process_list::iterator process_iterator; process_list m_listProcesses; process_iterator m_listIterator; CProcessList(); public : .....
Le compilateur me dit (et c'est assez compréhensible) qu'il n'a pas de construcuteur de process_iterator prenant un entier en argument.. Sauf que process_iterator étant un typedef, je ne sais pas trop ou gérer tout ca...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CProcessList::CProcessList() : m_listIterator(0) { }
L'erreur :
Une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 1>.\Processes.cpp(186) : error C2664: 'std::list<_Ty>::_Iterator<_Secure_validation>::_Iterator(const std::list<_Ty>::_Iterator<_Secure_validation> &)' : impossible de convertir le paramètre 1 de 'int' en 'const std::list<_Ty>::_Iterator<_Secure_validation> &' 1> with 1> [ 1> _Ty=CProcess *, 1> _Secure_validation=true 1> ] 1> Raison : impossible de convertir de 'int' en 'const std::list<_Ty>::_Iterator<_Secure_validation>' 1> with 1> [ 1> _Ty=CProcess *, 1> _Secure_validation=true 1> ] 1> Aucun constructeur n'a pu prendre le type de source, ou la résolution de la surcharge du constructeur était ambiguë
Partager