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 :

Accéder au trait d'une classe via son instance


Sujet :

Langage C++

  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut Accéder au trait d'une classe via son instance
    Hello,

    Si je dispose d'une instance, comment accéder aux traits déclarés dans la définition de la classe de cette instance ?

    Je suis encore bloqué par le fait que le C++11 n'a pas de réflexion ?

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Points : 1 086
    Points
    1 086
    Par défaut
    decltype(obj)::type ne fonctionne pas ?

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Apparemment pas.

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Points : 1 086
    Points
    1 086
    Par défaut
    Et en biaisant avec ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    std::vector<int> v;
    typedef decltype(v) v_type;
    v_type::value_type a = 42;
    -- edit --
    En effet, on ne peut apparemment pas appliquer un scope (::) à un decltype.
    Certains ont déjà fait remarquer cette lacune : http://en.wikipedia.org/wiki/Decltype#Semantics

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Citation Envoyé par cob59 Voir le message
    En effet, on ne peut apparemment pas appliquer un scope (: à un decltype.
    Certains ont déjà fait remarquer cette lacune : http://en.wikipedia.org/wiki/Decltype#Semantics
    Et pourtant :

    This, and similar issues pertaining to the wording inhibiting the use of decltype in the declaration of a derived class and in a destructor call, were addressed by David Vandevoorde, and voted into the working paper in March 2010.

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Points : 1 086
    Points
    1 086
    Par défaut
    Ton compilo et les miens (MinGW 4.2 et Visual 2010) ne l'ont toujours pas implémenté.
    Que dire de plus ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 45
    Points : 44
    Points
    44
    Par défaut
    [QUOTE=cob59;6481118]Et en biaisant avec ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    std::vector<int> v;
    typedef decltype(v) v_type;
    v_type::value_type a = 42;
    Pour info, compile sans problème avec gcc 4.4.5 sur Ubuntu, de même que l'utilisation directe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    decltype(v) v2;
    v2.push_back(1);

Discussions similaires

  1. [Reflexion] Comment récupérer une class via son chemin python
    Par anthyme dans le forum Général Python
    Réponses: 2
    Dernier message: 27/12/2007, 14h16
  2. Réponses: 3
    Dernier message: 25/02/2007, 19h49
  3. [VB5]Connaitre l'index d'une liste via son contenu
    Par guda dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 15/10/2005, 16h08
  4. [Débutant(e)]Instancier une classe connaissant son nom (String)
    Par Invité dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 17/06/2005, 12h05
  5. Réponses: 4
    Dernier message: 28/03/2005, 13h37

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