none
les références incohérente en compilation RRS feed

  • Question

  • J'ai des références qui ne sont pas reconnues par le compilateur mais que je trouve quand j'appelle: atteindre la définition. Ainsi

    le code suivant

    ifstream hinFile(s1, ios::in | ios::binary);

    génère t'il les messages d'erreurs suivant:

    1>..\..\..\..\Utility\EventManager\src\Event.cpp(126): error C2065: 'ifstream' : identificateur non déclaré
    1>..\..\..\..\Utility\EventManager\src\Event.cpp(126): error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'hinFile'
    1>..\..\..\..\Utility\EventManager\src\Event.cpp(126): error C2653: 'ios' : n'est pas un nom de classe ni d'espace de noms
    1>..\..\..\..\Utility\EventManager\src\Event.cpp(126): error C2065: 'in' : identificateur non déclaré
    1>..\..\..\..\Utility\EventManager\src\Event.cpp(126): error C2653: 'ios' : n'est pas un nom de classe ni d'espace de noms
    1>..\..\..\..\Utility\EventManager\src\Event.cpp(126): error C2065: 'binary' : identificateur non déclaré

    alors que quand on pointe sur chacun des symboles click droit sur atteindre la définition, on a respectivement

    pour ifstream dans le fichier iosfwd:

    typedef basic_ifstream<char, char_traits<char> > ifstream;

    pour ios dans le même fichier

    typedef basic_ios<char, char_traits<char> > ios;

    pour in et out dans le fichier xiosbase:

    template<class _Dummy>
    	const typename _Iosb<_Dummy>::_Openmode _Iosb<_Dummy>::in;
    template<class _Dummy>
    	const typename _Iosb<_Dummy>::_Openmode _Iosb<_Dummy>::out;

    et pour binary dans le même fichier

    static const _Openmode binary = (_Openmode)_IOSbinary;

    Bien que je suppose qu'il sont appelés par des includes généraux, j'ai essayé de les forcer dans StdAfx.h, mais ça n'a rien changé. comment faire?

    j'ai le même problème avec la déclaration suivante: même après avoir rajouté map dans StdAfx.h:

    typedef map<hidDB,tScore> 		  tmapLineMatrix;
    typedef tmapLineMatrix::iterator 	  titItem;
    typedef vector<tmapLineMatrix> 		  tvecMatrix;
    typedef tvecMatrix::iterator 		  titLine;
    j'ai tourné le second problème en supprimant l'appel du fichier qui n'était pas nécessaire


    Jean Noël Martin




    • Modifié JeanNoel53 vendredi 6 juillet 2012 17:04
    vendredi 6 juillet 2012 16:26

Réponses