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 : 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 : .....
D�finition du constructeur dans mon .cpp

Code : S�lectionner tout - Visualiser dans une fen�tre � part
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 : 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ë
Une id�e ?