IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VC++ .NET Discussion :

Passage VC2003->VC2005 TypeDef et Constructeur


Sujet :

VC++ .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 222
    Par défaut 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 : 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 ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 222
    Par défaut
    Bon, après reflexion, j'ai essayé ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CProcessList::CProcessList()
    	//: m_listIterator(0)
    {
    	m_listIterator = m_listProcesses.begin();
    }
    Je place l'iterateur au début de la liste, plutot que d'utiliser 0 ..

    Mais et-ce que placer l'iterator au début correspond réellement à un reset de l'iterator ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VC2003 vs VC2005 => performance ???
    Par Groove dans le forum Visual C++
    Réponses: 14
    Dernier message: 10/09/2009, 20h32
  2. Passage de VC6 à VC2005
    Par delire8 dans le forum VC++ .NET
    Réponses: 0
    Dernier message: 20/07/2007, 19h07
  3. Réponses: 6
    Dernier message: 10/06/2007, 13h33
  4. Réponses: 7
    Dernier message: 22/10/2006, 18h51
  5. Réponses: 5
    Dernier message: 21/11/2005, 01h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo