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

Langage C++ Discussion :

Spécialisation de template


Sujet :

Langage C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Points : 8
    Points
    8
    Par défaut Spécialisation de template
    Ce code ci-dessous compile sans problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    template< class T >
    struct mystruct
    {
    	enum { value = 0 };
    };
     
    template<> struct mystruct< int > { enum { value = 1 }; };
     
    int main(int argc, char *argv[])
    {
    	return 0;
    }
    Alors que celui-ci renvoie ceci avec g++:
    template.cpp:10: erreur: explicit specialization in non-namespace scope «class mycl»

    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
    class mycl
    {
     
    	template< class T >
    	struct mystruct
    	{
    		enum { value = 0 };
    	};
     
    	template<> struct mystruct< int > { enum { value = 1 }; }; // Probleme
    };
     
    int main(int argc, char *argv[])
    {
    	return 0;
    }
    Je suis largué. J'ai cherché un peu dans le forum. J'ai trouvé des sujets liés mais j'arrive pas à comprendre.

    http://www.developpez.net/forums/sho...late+namespace
    http://www.developpez.net/forums/sho...late+namespace
    http://www.developpez.net/forums/sho...late+namespace
    http://www.developpez.net/forums/sho...ation+template
    http://www.developpez.net/forums/sho...ation+template

  2. #2
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Argh, je viens de tester: ton code compile avec visual2005
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Mouais. J'ai trouvé une page en anglais qui en gros me fait comprendre qu'il faut revoir la théorie d'abord.

    C'est exactement le même problème.

    http://www.linuxquestions.org/questi...?postid=970273

    Le gars dit:
    1) si ca fonctionne dans MVS ca veut pas dire que c'est correct.
    2) il faut instancier la classe ou le template dans le main pour dire d'au moins vérifier que tout fonctionne
    3) ... jai pas compris le reste
    Edit: apparemment c'est impossible de spécialiser un template d'une classe sans spécialiser la classe aussi. D'où l'idée de revoir la théorie.

    M'enfin c'est pas clair du tout pour moi du coup je crois que c'est mieux de retourner dans les bouquins.

  4. #4
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Sinon, la faq de developpez.com sur les templates, et en particulier celle-ci, semble insister sur le fait qu'il est préférable d'expliciter au compilateur que c'est un template sur un type. C'est à dire, concrètement, d'utiliser le mot-clé typename à la place de Class:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class mycl
    {
     
    	template< typename T >
    	struct mystruct
    	{
    		enum { value = 0 };
    	};
     
    	template<> struct mystruct< int > { enum { value = 1 }; }; // Probleme
    };
    Peut-être...
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  5. #5
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par bobyjoe
    Alors que celui-ci renvoie ceci avec g++:
    template.cpp:10: erreur: explicit specialization in non-namespace scope «class mycl»

    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
    class mycl
    {
     
    	template< class T >
    	struct mystruct
    	{
    		enum { value = 0 };
    	};
     
    	template<> struct mystruct< int > { enum { value = 1 }; }; // Probleme
    };
     
    int main(int argc, char *argv[])
    {
    	return 0;
    }

    Je suis largué. J'ai cherché un peu dans le forum. J'ai trouvé des sujets liés mais j'arrive pas à comprendre.
    g++ a raison, on ne peut specialiser que dans le namespace et pas dans la classe (14.7.3/2 pour ceux qui veulent la reference) Solution:
    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
    class mycl
    {
     
    	template< class T >
    	struct mystruct
    	{
    		enum { value = 0 };
    	};
    };
     
    template<> 
    struct mycl::mystruct< int >
    {
       enum { value = 1 };
    };
    Et je n'ai pas le souvenir que ca doive changer en C++0X
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  6. #6
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par r0d
    Sinon, la faq de developpez.com sur les templates, et en particulier celle-ci, semble insister sur le fait qu'il est préférable d'expliciter au compilateur que c'est un template sur un type. C'est à dire, concrètement, d'utiliser le mot-clé typename à la place de Class:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class mycl
    {
     
    	template< typename T >
    	struct mystruct
    	{
    		enum { value = 0 };
    	};
     
    	template<> struct mystruct< int > { enum { value = 1 }; }; // Probleme
    };
    Peut-être...
    C'est un tout autre probleme.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Effectivement en reprenant le code posté sur linuxquestions, où il utilise typename aulieu de class, l'erreur est la même.

    http://www.linuxquestions.org/questi...?postid=970273


    Jean-Marc a donné la solution en placant la spécialisation en dehors de la class cela fonctionne.

    C'est formidable !

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur .NET/C/C++
    Inscrit en
    Septembre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET/C/C++
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2007
    Messages : 71
    Points : 122
    Points
    122
    Par défaut
    Et maintenant petite question:
    On fait comment quand on veut spécialiser une fonction template membre d'une classe template?
    "Toujours en faire plus pour en faire moins"

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Points : 1 053
    Points
    1 053
    Par défaut
    Comme pour les fonctions normales:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class machin {
       template<X> void xxx(X) {...}
       void xxx(int) {...}
    };
    Mais depuis l'extérieur de la classe... ça ne me semblerait pas très logique si c'était permis (pour les classes internes non plus d'ailleurs, les facéties du C++,...).

  10. #10
    Membre régulier
    Homme Profil pro
    Développeur .NET/C/C++
    Inscrit en
    Septembre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET/C/C++
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2007
    Messages : 71
    Points : 122
    Points
    122
    Par défaut
    Euh, la tu me parles de surcharge et pas de spécialisation, et ta classe n'est pas une classe template.
    Je demande cela parce qu'actuellement j'ai ce problème là, à savoir que j'ai une fonction dont le comportement dépend d'un paramètre template, et que celle-ci fait partie d'une classe template. Seulement, j'ai besoin de le spécialiser pourun type particulier (pour mettre fin à ma récursion en fait), or cela est impossible car le compilateur refuse que je le fasse dans ma classe (doit se faire dans le namespace), et il refuse également que je spécialise ma fonction sans spécialiser ma classe. Or les paramètres templates que je reçoit au niveau de ma classe nesont pas connus à l'avance. Et j'ajouterai (précision importante je pense) que ceux-ci ne sont aucunment liés au paramètre que reçoit ma fonction. (en tout cas, pas dans le cas ou je si censé la spécialiser).
    Quoi qu'il en soit, je crois avoir trouvé une solution: je vais mettre ma fonction dans une classe à part, laquelle recevra à la fois les paramètres templates de ma classe, et celui de ma fonction. Je n'aurai ensuite plus qu'à copier ma fonction dans cette classe et spécialiser la classe tout entière pour le cas qui m'intéresse. ça m'ennuie un peu dans la mesure ou je risque q'avoir plus de paramètres (non-templates cette fois) à passer à ma fonction du fait que je ne suis plus dans ma classe, mais bon... Au pire je déclare ma fonction comme statique, envoie en 1er paramètre une instance de ma classe de départ, laquelle sera vue comme classe amie pour que je puisse avoir accès à tout.
    "Toujours en faire plus pour en faire moins"

  11. #11
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    C'est une spécialisation partielle ou totale ?
    (tu fais quelque chose du genre des TypeLists ?)

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Points : 1 053
    Points
    1 053
    Par défaut
    Pfiou, ça commence à devenir compliqué tout ça, je comprends plus vraiment ce que tu veux faire. En tout cas, au cas où tu ne les aurais pas trouvés (ils sont bien cachés), il y a plusieurs articles très interressant sur la meta-programmation par template sur developpez. Les liens serviront toujours:
    http://loulou.developpez.com/tutoriels/cpp/metaprog/
    http://alp.developpez.com/
    (Soit dit en passant, il n'y a aucun lien vers les tutos de alp dans la section tutoriels, pas très sérieux tout ça).

  13. #13
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    C'est en cours de mise à jour.
    Les responsables ne sont pas des machines de guerre

    En effet, dans tous les cas, ces tutos là peuvent mettre sur la voie.

    bountykiller > le mieux est que tu regardes la norme (au pire le working draft de C++0x, si tu n'as pas l'actuelle) au passage qui t'intéresse.
    Car je n'ai pas totalement compris ton problème.

  14. #14
    Membre régulier
    Homme Profil pro
    Développeur .NET/C/C++
    Inscrit en
    Septembre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET/C/C++
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2007
    Messages : 71
    Points : 122
    Points
    122
    Par défaut
    Merci à tous pour votre aide, mais c'est bon, j'ai finallement pu résoudre mon problème et ça compile nickel (plus qu'à voir si ça fait ce que ça doit faire )
    C'est une spécialisation partielle ou totale ?
    (tu fais quelque chose du genre des TypeLists ?)
    Oui, j'utilise des typelists.
    En tout cas, au cas où tu ne les aurais pas trouvés (ils sont bien cachés), il y a plusieurs articles très interressant sur la meta-programmation par template sur developpez. Les liens serviront toujours:
    http://loulou.developpez.com/tutoriels/cpp/metaprog/
    http://alp.developpez.com/
    En fait, celui sur la métaprogrammation en C++ est un de mes préféré. C'est en partie grâce(ou à cause????) de lui que j'adore le C++.

    Maintenant, je vais quand même expliquer mon problème et ma solution. On ne sait jamais, ça peut toujours intérésser quelqu'un.
    Donc, Pour commencer, j'ai une classe template qui contient une fonction template.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    template <typename T>
    class myclass
    {
        //...
        template <typename U> //pour info, U ici est un typelist
        int myFunc();
    }
    Ensuite, dans un fichier cpp, je mets le corps de ma fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    template <typename T>
    template <typename U>
    int myclass<T>::myFunc<U>()
    {
        DoSomething();
        return some_int;
    }
    Maintenant le problème: Si j'essaie de spécialiser myFunc sans spécialiser myclass, cela ne fonction tout simplement pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    template <typename T>
    template <>
    int myclass<T>::myFunc<empty_typelist>() //spécialisation pour le cas ou ma typelist est vide
    {
    //ERREUR A LA COMPILATION!!! car myclass doit être spécialisé si je veux spécialiser myFunc.
    }
    Et maintenant la solution ;-)

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    //Dans le .h
    template <typename T>
    class myclass
    {
        //...
        template <typename U> //pour info, U ici est un typelist
        int myFunc();
    }
     
    template <typename T, typename U> 
    class myclass_implementation
    {
        static int exec_myFunc();
    }
     
    //Dans le .cpp
    template <typename T>
    template <typename U>
    int myclass<T>::myFunc<U>()
    {
        return myclass_implementation<T, U>::exec_myFunc();
    }
     
    template<typename T, typename U>
    int myclass_implementation<T, U>::exec_myFunc()
    {
        DoSomething();
        return some_int;
    }
     
    //spécialisation, et ce coup-ci le compilo accepte mon code
    template<typename T>
    int myclass_implementation<T, empty_typelist>::exec_myFunc()
    {
        DoSomethingElse();
        return 0; //par exemple
    }
    Et voilà
    En éspérant que ça en aide certains...
    "Toujours en faire plus pour en faire moins"

  15. #15
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Des templates dans un fichier .cpp ?


    PS : je te conseille TRES TRES VIVEMENT ces deux bouquins :
    http://cpp.developpez.com/livres/?pa...pt#L0201704315
    http://cpp.developpez.com/livres/?pa...pt#L0321227255

    Petite préférence pour le premier

  16. #16
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    l'utilisation des templates ne nécessite pas toujours l'inlining des fonctions membres, même si dans la très grande majorité des cas, c'est ce qui est utilisé. Je te conseilles aussi "C++ Templates : The Complete Guide" toujours chez AW où il est expliqué comment utiliser ses templates dans des .cpp.

  17. #17
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par Alp Voir le message
    Des templates dans un fichier .cpp ?
    C'est moche mais ca peut servire
    Genre pour cacher le code de la template. Du moment que la template est uniquement utilisée dans ce . cpp bien sur.

    Bien je ne le fait pas et ne le recommende pas. Mais bon, il faut de tout pour faire un monde

  18. #18
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    Je ne pensais pas vraiment à l'utilisation d'un cpp pour cacher le code d'un template, c'est plutôt selon l'utilisation que l'on en a qui va déterminer ce choix.

    Par exemple si ton template a un but complétement générique, du style de tout ce qu'on trouve dans la stl, pas la peine de penser à faire un cpp pour en faire une lib ou dll.

    Si ton template a une utilisation pour deux ou trois types d'objets seulement, que tu connais au moment de faire ta lib, là tu peux envisager de faire des instanciations explicites directement dans une dll et ne fournir que le .h, ça peux t'éviter pas mal de temps de compilation en plus.

    Si tu prévois de rajouter d'autres objets compatibles avec ton template, tu refais juste ta dll avec l'instanciation de ces objets, ou tu en fournis une autre.

    On pourrait imaginer un moteur graphique template <OpenGL> ou <DirectX>, comme ça tu vires toutes les vtables car tu n'a plus besoin d'interface -> gain de perfs. Je ne comprends pas pourquoi cette méthode n'est pas plus utilisée. (pas assez connue ?)

    Un petit exemple :

    TestTemplate.h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #ifndef TESTTEMPLATE_H
    #define TESTTEMPLATE_H
     
    template <typename T>
    class TestTemplate  
    {
      public:
        void DoSomething();
    };
     
    #endif
    TestTemplate.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include "TestTemplate.h"
     
    template <typename T>
    void
    TestTemplate<T>::DoSomething()
    {
     
    }
    main.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include "TestTemplate.h"
     
    int main() 
    { 
     
      TestTemplate<int> templateincpp;
     
      templateincpp.DoSomething();
     
      return 0;
    }
    Cet exemple provoque une link error sur la methode DoSomething(), et c'est normal. Maintenant si l'on rajoute un fichier ExplicitInstanciations.cpp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #include "TestTemplate.cpp"
     
    // Instanciations explicites pour les int, float et double
    template TestTemplate<int>;
    template TestTemplate<float>;
    template TestTemplate<double>;
    Alors il trouve le template sans soucis.

    Les cas où l'on peut connaitre les types utilisés à la compilation de la dll ne sont pas rares et peuvent apporter les avantages cités plus hauts.

  19. #19
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    Par contre j'ai une question pour les utilisateurs de GCC.

    Sous visual, je ne peux pas faire une instanciation explicite d'une spécialisation totale de template, juste d'une spécialisation partielle.

    Ce code compile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    template <class T, class T2>
    struct s;
     
    template <class T>
    struct s<T,T> {};
     
    template struct s<int,int>;
    Pas celui là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    template <class T, class T2>
    struct s;
     
    template <>
    struct s<int,int> {};
     
    template struct s<int,int>;
    Sous Comeau online, les deux sont corrects, alors que dit gcc ? J'envisage de plus en plus de changer de compilateur...

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

Discussions similaires

  1. [Problème] Alias de spécialisation de template
    Par DocteurV dans le forum Langage
    Réponses: 9
    Dernier message: 31/08/2009, 17h09
  2. Spécialisation de template particulière
    Par Flo. dans le forum Langage
    Réponses: 4
    Dernier message: 25/03/2009, 22h18
  3. Spécialisation de template parametre avec Enum
    Par 3DArchi dans le forum Langage
    Réponses: 4
    Dernier message: 24/09/2008, 15h21
  4. Réponses: 8
    Dernier message: 24/04/2007, 22h09
  5. Réponses: 7
    Dernier message: 01/01/2006, 03h28

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