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

C++ Discussion :

bug de GCC ou de MSVC?


Sujet :

C++

  1. #1
    screetch
    Invité(e)
    Par défaut bug de GCC ou de MSVC?
    oui j'aime bien crier au loup avec "ouh la la bug incroyable du compilateur!!"

    soit le code suivant :
    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
    #include <cstdio>
     
    template< typename T >
    void do_work(const T& worker)
    {
        worker();
    }
     
    int main(int argc, char *argv[])
    {
        struct Worker
        {
            void operator()() const
            {
                printf("Hello World!\n");
            }
        };
        do_work(Worker());
    }
    ce code echoue sur gcc mingw 4.3.0
    et compile parfaitement sur MSVC 8.0 et 9.0 (express si il faut)
    ce qui déplait a GCC c'est la localité de la définition du type Worker, si on le met en dehors de main ca marche très bien.
    Selon moi, c'est du caca, ca devrait marcher... a moins que quelqu'un me dise le contraire ? c'est bien un bug de GCC ? et si oui, quelels versions ? vous avez deja vu ca ? ou alors un bug de MSVC qui est trop laxiste?

  2. #2
    Membre chevronné
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Par défaut
    message d'erreur ?

    En règle générale, MSVC est toujours trop laxiste (Microsoft et le respect des standards, c'est incompatible).
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  3. #3
    Membre émérite Avatar de HanLee
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2004
    Messages : 738
    Par défaut
    Ce n'est pas un bug.
    En fait, une fonction template ne peut pas être instanciée avec un type défini localement, c'est bête mais c'est comme ça :/.

  4. #4
    screetch
    Invité(e)
    Par défaut
    c'est un bug de msvc dans ce cas. OK merci.

    l'erreur sous GCC est "no match for function "do_work(Workerblablabla" donc pas très explicite malheureusement

Discussions similaires

  1. Réponses: 40
    Dernier message: 21/08/2014, 15h35
  2. Réponses: 4
    Dernier message: 15/05/2013, 09h52
  3. Bug linx gcc
    Par eyeofthetiger dans le forum Débuter
    Réponses: 1
    Dernier message: 27/05/2008, 23h01
  4. [MEX] Bug dans le débuggage de mex file dans R2007b et MSVC 6.0
    Par SeByDocKy dans le forum MATLAB
    Réponses: 2
    Dernier message: 13/11/2007, 06h49
  5. [gcc][bug?] warning: will never be executed
    Par PRomu@ld dans le forum Autres éditeurs
    Réponses: 16
    Dernier message: 22/08/2006, 16h58

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