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

Boost C++ Discussion :

boost::filesystem - problème avec seekg


Sujet :

Boost C++

  1. #1
    Membre habitué Avatar de Kromagg
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2008
    Messages : 275
    Points : 198
    Points
    198
    Par défaut boost::filesystem - problème avec seekg
    Bonjour à tous

    J'utilise la classe boost::filesystem::fstream pour représenter un fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    class FileStream
    {
    private:
     
         filesystem::fstream mStream;
         ...
     
    public:
     
         size_t length(void) const;
    }
     
    size_t FileStream::length(void) const
    {
    	size_t length;
     
    	mStream.seekg(0, std::ios::end);	
    	length = mStream.tellg();
    	mStream.seekg(0, std::ios::beg);
     
    	return length;
    }
    Et la le compilateur grogne:
    1>error C2663: 'std::basic_istream<_Elem,_Traits>::seekg'*: 2 surcharges n'ont pas de conversion autorisée pour le pointeur 'this'
    1> with
    1> [
    1> _Elem=char,
    1> _Traits=std::char_traits<char>
    1> ]
    1>error C2662: 'std::basic_istream<_Elem,_Traits>::tellg'*: impossible de convertir un pointeur 'this' de 'const boost::filesystem::fstream' en 'std::basic_istream<_Elem,_Traits> &'
    1> with
    1> [
    1> _Elem=char,
    1> _Traits=std::char_traits<char>
    1> ]
    1> La conversion perd les qualificateurs
    1>error C2663: 'std::basic_istream<_Elem,_Traits>::seekg'*: 2 surcharges n'ont pas de conversion autorisée pour le pointeur 'this'
    1> with
    1> [
    1> _Elem=char,
    1> _Traits=std::char_traits<char>
    1> ]
    Je ne comprend pas bien ce que ça signifie puisque j'ai suivi cet exemple
    http://www.cplusplus.com/reference/i...eam/seekg.html

    Naoss.
    C'est dans ses rêves que l'homme trouve la liberté cela fut, est et restera la vérité! (John Keating - Le cercle des poètes disparus)

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Points : 858
    Points
    858
    Par défaut
    Dans la fonction length (const) tu appelle une fonction non-const sur un membre (mStream.seekg) ce qui n'est pas autorisé. Il faut soit enlever le const à length() soit passer par un const_cast.

  3. #3
    Membre habitué Avatar de Kromagg
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2008
    Messages : 275
    Points : 198
    Points
    198
    Par défaut
    Ahhhh exact

    Merci bien
    C'est dans ses rêves que l'homme trouve la liberté cela fut, est et restera la vérité! (John Keating - Le cercle des poètes disparus)

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

Discussions similaires

  1. [boost::program_options] Problème avec zero_tokens
    Par ThinkerR dans le forum Boost
    Réponses: 0
    Dernier message: 30/05/2009, 21h26
  2. Réponses: 3
    Dernier message: 29/07/2008, 20h03
  3. [boost] Problème avec boost::function
    Par Bakura dans le forum Boost
    Réponses: 3
    Dernier message: 22/03/2007, 20h08
  4. [BOOST] Problème avec les threads
    Par SOAD08 dans le forum Dev-C++
    Réponses: 7
    Dernier message: 08/10/2006, 10h23
  5. Réponses: 18
    Dernier message: 28/08/2006, 23h07

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