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 :

Les variadic templates de C++0x : votre avis ?


Sujet :

C++

  1. #1
    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 Les variadic templates de C++0x : votre avis ?
    Bonjour à tous,

    Si vous avez un peu suivi l'actualité C++0x, vous avez surement vu qu'il y aura une nouvelle possibilité avec les templates... Le fait de faire comme pour printf, passer un nombre arbitraire d'arguments... Mais dans le cas des templates il s'agit de types !

    Pour avoir une meilleure idée de ce que c'est, peut-être voudrez-vous lire mon billet sur les variadic templates dans lequel je donne surtout des liens essentiels pour en savoir plus.

    Qu'en pensez-vous ?

    Par exemple, Faisal Vali émet une suggestion d'ajout (toutefois je pense que c'est trop tard... Peut-être pour la première révision de C++0x ?) relative aux variadic templates, je cite :
    1) Member Declaration Packs:
    template<class ... V> struct store { V...members; };
    Standardese: http://c-plus-plus-0x.wikidot.com/c-...es:member-decl...

    2) Pack expansions of arbitrary expressions:
    template<class ... V> bool v_and(V...v) { return true && v ...; }
    Standardese: http://c-plus-plus-0x.wikidot.com/va...ck-expansion-o...

    3) A guaranteed non-recursive way to access elements of parameter
    packs
    template<int N, class ... V> struct get_type
    {
    typedef V@N type; // or implementation_defined<N,V...>::type -
    guaranteed linear
    };
    template<int N, class ... V> get_type<N,V...>::type get(V...v) {
    return ::implementation_defined<N>(v...);
    }
    Pensez-vous que ç'a trop été fait à la "va-vite" ? Que ces suggestions sont justifiées ?

    Vous en servirez-vous (pour de la programmation système j'en doute, mais s'il y a parmi vous des concepteurs de modules/bibliothèques se devant d'être génériques, je pense que vous devriez vous intéresser aux VT si ce n'est pas déjà fait) ?

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Quel rapport avec la programmation système ?

    Le 3 et le 1, sinon, il suffit d'utiliser une liste de types qui fait déjà le boulot, un genre de tuple à la compilation. mpl::vector par ailleurs fournit même un get en temps constant.
    Boost ftw

  3. #3
    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
    Citation Envoyé par loufoque Voir le message
    Quel rapport avec la programmation système ?
    C'était juste pour dire qu'en programmation système, quand on fait un programme qui a un but bien précis, on a moins tendance à devoir rendre les classes & compagnie génériques que quand on fait une bibliothèque pour Boost par exemple.

    Citation Envoyé par loufoque Voir le message
    Le 3 et le 1, sinon, il suffit d'utiliser une liste de types qui fait déjà le boulot, un genre de tuple à la compilation. mpl::vector par ailleurs fournit même un get en temps constant.
    L'intérêt serait de ne pas avoir à le faire à la main pour les rendre plus accessibles et simples à utiliser je pense, non ?

Discussions similaires

  1. Donnez votre avis sur les articles de Developpez.com
    Par Geronimo dans le forum C++Builder
    Réponses: 13
    Dernier message: 14/01/2007, 22h00
  2. Donnez votre avis sur les articles de Developpez
    Par Anomaly dans le forum Contribuez
    Réponses: 37
    Dernier message: 29/05/2006, 21h48
  3. Votre avis sur les performances
    Par Rafy dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 12/08/2005, 08h28
  4. Votre avis sur les Logos Nouveau / MAJ, Actualisé, etc...
    Par Marc Lussac dans le forum Evolutions du club
    Réponses: 32
    Dernier message: 11/09/2004, 01h17

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