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.Variant warning et visual


Sujet :

Boost C++

  1. #1
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut Boost.Variant warning et visual
    Bonjour,
    Sur un exemple aussi simple :
    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
    24
    25
    26
    27
     
    #include <iostream>
    #include <string>
    #include <boost/variant.hpp>
     
    struct mon_visiteur :boost::static_visitor<void>
    {
       void operator()(int i_)const
       {
          std::cout<<"un entier de valeur "<<i_<<std::endl;
       }
       void operator()(std::string str_)const
       {
          std::cout<<"une chaine de valeur "<<str_<<std::endl;
       }
    };
     
    int main()
    {
       boost::variant<int,std::string> un_entier_ou_une_chaine;
       un_entier_ou_une_chaine=1;
       boost::apply_visitor(mon_visiteur(),un_entier_ou_une_chaine);
       un_entier_ou_une_chaine = "tutu";
       boost::apply_visitor(mon_visiteur(),un_entier_ou_une_chaine);
     
       return 0;
    }
    J'ai 6 beaux warning avec Visual Express :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    warning C4512: 'boost::detail::variant::direct_assigner<T>' : assignment operator could not be generated
    warning C4512: 'boost::detail::variant::invoke_visitor<Visitor>' : assignment operator could not be generated
    warning C4512: 'boost::detail::variant::direct_assigner<T>' : assignment operator could not be generated
    warning C4512: 'boost::variant<T0_,T1>::assigner' : assignment operator could not be generated
    warning C4512: 'boost::detail::variant::invoke_visitor<Visitor>' : assignment operator could not be generated
    warning C4512: 'boost::detail::variant::invoke_visitor<Visitor>' : assignment operator could not be generated
    Visiblement, il ne sait pas construire l'opérateur d'assignement par défaut (du moins, si mon anglais n'est pas trop bancal).

    Question : Qu'est-ce que cela peut avoir comme conséquence ?
    Question bis: comment je peux virer ces warning (à part un brutal pragma disable).

    Il ne me semble rien avoir vu à ce sujet sur le site de boost.

  2. #2
    Membre actif Avatar de babar63
    Homme Profil pro
    Développeur jeux vidéos/3d Temps réel
    Inscrit en
    Septembre 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur jeux vidéos/3d Temps réel

    Informations forums :
    Inscription : Septembre 2005
    Messages : 241
    Points : 207
    Points
    207
    Par défaut
    Quelle version de boost tu utilises? j'ai essayé avec la 1_36 et je n'ai pas de warning pour visual 2005 et visual 2005 express...

  3. #3
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    idem, boost 1.37. Pas de warnings, même avec /W4.

  4. #4
    Membre actif Avatar de babar63
    Homme Profil pro
    Développeur jeux vidéos/3d Temps réel
    Inscrit en
    Septembre 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur jeux vidéos/3d Temps réel

    Informations forums :
    Inscription : Septembre 2005
    Messages : 241
    Points : 207
    Points
    207
    Par défaut
    De toute façon d'après ton warning ça ne devrait pas venir de la version de boost mais plutôt d'un bug du au compilateur. Pour les consequence ça semblerait assez logique que tu n'es pas de problème au runtime mais plutôt lors de la compilation si tu fais un appel à l'un des operateurs implicites qui n'a pas était construit...

  5. #5
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    J'utilise la version 1.38. Apparemment, sur des utilisations 'standards', je n'ai pas de problème. Mais, de nature angoissé, un warning, ça m'inquiète toujours...

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par babar63 Voir le message
    Quelle version de boost tu utilises? j'ai essayé avec la 1_36 et je n'ai pas de warning pour visual 2005 et visual 2005 express...
    Ca dépend des niveaux de warning.

  7. #7
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    Comme je l'ai mis plus haut, même avec /W4 j'en avais 0.

  8. #8
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Peut-être avec Visual 2008 ?

  9. #9
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    Citation Envoyé par Matthieu Brucher Voir le message
    Peut-être avec Visual 2008 ?
    Ah oui c'est vrai que sur ce PC j'ai Visual Express 2008 !
    Au temps pour moi !

  10. #10
    Membre actif Avatar de babar63
    Homme Profil pro
    Développeur jeux vidéos/3d Temps réel
    Inscrit en
    Septembre 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur jeux vidéos/3d Temps réel

    Informations forums :
    Inscription : Septembre 2005
    Messages : 241
    Points : 207
    Points
    207
    Par défaut
    En effet je n'ai pas pensé à essayer en W4, c'est d'autant plus stupide que j'ai bien ces warnings sous visual 2005, donc pour les virer passer à visual 2008 semble être une solution (sans disable)...

Discussions similaires

  1. boost::variant, problème de conception ?
    Par Bakura dans le forum Boost
    Réponses: 6
    Dernier message: 25/05/2009, 01h39
  2. boost::any ou boost::variant ?
    Par vandamme dans le forum Boost
    Réponses: 4
    Dernier message: 09/04/2009, 22h32
  3. Réponses: 10
    Dernier message: 08/03/2009, 13h53
  4. question sur boost::variant
    Par sleigh dans le forum Boost
    Réponses: 5
    Dernier message: 22/05/2007, 18h51

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