Passage VC2003->VC2005 TypeDef et Constructeur
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
Code:
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 : ..... |
Définition du constructeur dans mon .cpp
Code:
1 2 3 4 5
|
CProcessList::CProcessList()
: m_listIterator(0)
{
} |
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...
L'erreur :
Code:
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ë |
Une idée ?