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

SL & STL C++ Discussion :

erreure de compilation bizarre


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Par défaut erreure de compilation bizarre
    Salut,
    je test une copie à la volé d'un stream vers un autre. Alors si je fais ça, ça marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	ifstream ifs ("in.txt");
    copy(istream_iterator<int,char>(ifs),
            istream_iterator<int,char>(),
            ostream_iterator<int>(std::cout, " "));
    en revanche ça, ça ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    copy(istream_iterator<int,char>(ifstream("in.txt")),
            istream_iterator<int,char>(),
            ostream_iterator<int>(std::cout, " "));
    j'ai un message du style
    g++ -O2 main.cpp -o main.exe
    main.cpp: In function `int main()':
    main.cpp:14: error: no matching function for call to `std::istream_iterator<int, char, std::char_traits<char>, ptrdiff_t>::istream_iterator(std::ifstream)'
    C:/MingW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stream_iterator.h:71: note: candidates are: std::istream_iterator<_Tp, _CharT, _Traits, _Dist>::istream_iterator(const std::istream_iterator<_Tp, _CharT, _Traits, _Dist>&) [with _Tp = int, _CharT = char, _Traits = std::char_traits<char>, _Dist = ptrdiff_t]
    C:/MingW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stream_iterator.h:67: note: std::istream_iterator<_Tp, _CharT, _Traits, _Dist>::istream_iterator(std::basic_istream<_CharT, _Traits>&) [with _Tp = int, _CharT = char, _Traits = std::char_traits<char>, _Dist = ptrdiff_t]
    C:/MingW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stream_iterator.h:63: note: std::istream_iterator<_Tp, _CharT, _Traits, _Dist>::istream_iterator() [with _Tp = int, _CharT = char, _Traits = std::char_traits<char>, _Dist = ptrdiff_t]
    je ne comprend le probleme, meme en lisant le message du compilo...

    Autre question, la deuxieme ecriture (en supposant qu'elle marche) serait-elle déconseillée? parce que dans ce deuxieme cas je pourrais pas faire explicitement appel à .close() je me trompe?

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Le constructeur de istream_iterator prend un istream par référence, donc tu ne peux pas lui passer un temporaire construit à la volée. De plus il paraît logique que ton istream ait une durée de vie supérieure à l'appel de la fonction, ce qui ne serait pas le cas dans ton second exemple.

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

Discussions similaires

  1. Erreur de compilation bizarre
    Par sliman84 dans le forum Débuter
    Réponses: 5
    Dernier message: 31/07/2011, 00h08
  2. "Intellisence" et erreurs de compilation bizarres
    Par mister3957 dans le forum Code::Blocks
    Réponses: 0
    Dernier message: 06/02/2010, 11h54
  3. [DEV C++] Erreur de compilation bizarre
    Par Muesko dans le forum Dev-C++
    Réponses: 7
    Dernier message: 04/07/2007, 15h37
  4. Erreur de compilation bizarre !
    Par SuperWeight dans le forum MFC
    Réponses: 3
    Dernier message: 31/05/2007, 16h43
  5. Erreur de compilation bizarre
    Par Florian.L dans le forum C
    Réponses: 3
    Dernier message: 11/05/2007, 17h31

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