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 :

Default template + variadic template : lequel en dernier


Sujet :

Langage C++

  1. #1
    Membre habitué
    Homme Profil pro
    Doctorant en Astrophysique
    Inscrit en
    Mars 2009
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Astrophysique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2009
    Messages : 312
    Points : 176
    Points
    176
    Par défaut Default template + variadic template : lequel en dernier
    Bonjour.

    J'ai un petit problème avec une fonction template qui comporte un enable_if.
    Quelle est la bonne syntaxe pour mon template ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    template<typename T, unsigned int... TDIM, 
             class = typename std::enable_if<std::is_fundamental<T>::value>::type> 
    void myFunction()
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    template<typename T, class =
             typename std::enable_if<std::is_fundamental<T>::value>::type, unsigned int... TDIM> 
    void myFunction()
    (la seule chose qui change est l'inversion entre le variadic et le paramètre par défaut.)

    Merci beaucoup

  2. #2
    En attente de confirmation mail

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Points : 3 311
    Points
    3 311
    Par défaut
    A moins que tu veuilles devoir repréciser à chaque fois le enable_if lors des appels tu n'as pas vraiment le choix : enable_if en dernier. Sinon les deux syntaxes sont valides.

  3. #3
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Aucune des 2 ?
    Tu peux mettre aussi le enable_if comme paramètre de retour de fonction ou comme "dumy paramter" dans la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    template<typename T, unsigned int... TDIM> 
    typename std::enable_if<std::is_fundamental<T>::value>::type myFunction()
     
    template<typename T, unsigned int... TDIM> 
    void myFunction(typename std::enable_if<std::is_fundamental<T>::value>::type* = 0)
    (pour plus de code : http://en.cppreference.com/w/cpp/types/enable_if)

  4. #4
    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
    La premiere me semble bonne, un pack pouvant etre suivit d'autres parametres templates s'ils ont une valeur par defaut.

    La deuxieme aussi mais moins utile (l'objectif avec enable_if, c'est de garder la valeur par defaut)
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

Discussions similaires

  1. Hierarchie et variadic template
    Par victor_gasgas dans le forum Langage
    Réponses: 5
    Dernier message: 22/09/2010, 17h24
  2. C++ 0x variadic template
    Par victor_gasgas dans le forum Langage
    Réponses: 6
    Dernier message: 21/09/2010, 07h26
  3. [C++0x] Variadic template : un constructeur par type
    Par Florian Goo dans le forum Langage
    Réponses: 2
    Dernier message: 08/04/2009, 18h33
  4. Réponses: 2
    Dernier message: 10/01/2009, 13h38

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