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 :

Typedef sur liste de types ?


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut Typedef sur liste de types ?
    Hello,

    Un typedef sur une liste de types est-il possible ?
    Quelque chose du genre
    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
    template <class... Args>
    class Event {
    public:
       typedef const Args&... ArgsType; // ça
       typedef std::function<void(const Args&...)> FctType;
       //...
    };
     
    // utilisation
    class EventA {
    public:
       typedef Event<int, int> IntIntEventType;
       typedef Event<int> IntEventType;
     
       void addIntInt(IntIntEventType::FctType fct) { m_eventIntInt.add(fct); }
       void fireIntInt(IntIntEventType::ArgsType args...) { m_eventIntInt.fire(args...); }
     
       void addInt(IntEventType::FctType fct) { m_eventInt.add(fct); }
       void fireInt(IntEventType::ArgsType args...) { m_eventInt.fire(args...); }
    private:
       IntIntEventType m_eventIntInt;
       IntEventType m_eventInt;
    };

  2. #2
    Membre Expert

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Par défaut
    Non, c'est impossible.
    Il me semble qu'il y a eu des proposals allant dans ce sens mais je n'ai pas l'impression qu'ils ont été très suivis.

  3. #3
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    Ok, merci.

  4. #4
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    En reprenant ton exemple, quel sens tu donnerai a ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Event::ArgsType a;
    a= ???;
    Une parade, cest de mettre ca dans un tuple et de faire un typedef dessus
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  5. #5
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    Aucun sens, ici, mais ce n'était pas le but recherché

    Sinon pour les tuples, je vais avoir le même problème :
    soit avoir une fonction template variadique pour passer les paramètres au tuple,
    soit devoir écrire tous les types à la main.

    Ces deux solutions sont déjà les deux que j'ai actuellement, et même si j'ai hésité à utiliser une fonction template variadique pour générer une bonne partie de la classe à coup de macro (j'ai une dizaine de classes de ce type), je ne me suis pas laissé tenter car ça va pourrir la détection de types pour l'autocomplétion.

  6. #6
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Sinon pour les tuples, je vais avoir le même problème :
    soit avoir une fonction template variadique pour passer les paramètres au tuple,soit devoir écrire tous les types à la main.
    Jai pas compris

    Qu'est ce qui te pose problème avec les tuples ?
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

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

Discussions similaires

  1. Recupérer toutes les listes de type tache sur un site
    Par roubi dans le forum Développement Sharepoint
    Réponses: 2
    Dernier message: 25/01/2014, 18h19
  2. Réponses: 4
    Dernier message: 24/01/2012, 16h39
  3. [List] Iterateur sur une liste de type défini
    Par Wookai dans le forum SL & STL
    Réponses: 4
    Dernier message: 12/11/2007, 20h45
  4. [WSS 3] Feature d'une liste basée sur un content type
    Par d1g-2-d1g dans le forum SharePoint
    Réponses: 11
    Dernier message: 26/09/2007, 19h05
  5. [langage] random sur liste ou tableau
    Par martijan dans le forum Langage
    Réponses: 2
    Dernier message: 15/07/2003, 14h47

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