Partage
  • Partager sur Facebook
  • Partager sur Twitter

afficher ce que renvoie decltype(a), pas typeid

C++

    6 novembre 2018 à 15:19:05

    Salut OC, :)

    je suis aux pages 28/29 du livre de Scott Meyers(conseil 3), j'arrive bientôt à la fin du conseil 3. je suis en train de faire plusieurs tests pour vérifier que je comprends.

    Il y a un point que j'ai à éclaircir :

    Scott Meyers dit, page 28 :

    "En revanche , lorsque les expressions sont plus plus compliquées que de simples noms, decltype s'assure que le type renvoyé est toujours une référence lvalue. Autrement dit, si une expression lvalue autre qu'un nom est de type T, decltype indique qu'elle est de type T&. Ce comportement n'a en général pas d'impact..."

    1) pourquoi est-ce ainsi ?

    Je voudrais bien utiliser le cas 2 (page 13) avec les références universelles comme avant. L'argument ne me semble pas être le bon dans ce contexte. Il n'y aucune raison pour cela à priori, car un const par exemple ne rentre pas  ce cas de figure à priori par exemple ?..

    2) Je cherche à faire des tests pour voir par moi-même ce qu'il se passe. je voudrais donc afficher à l'écran ce que donnerait decltype sur de nombreux cas de figure. Je n'ai pas trouvé la fonction le permettant.

    j'ai essayé avec

    typeid(x).name();

    le problème, c'est que si par exemple je fais , avec typeid(...).name() par exemple

    int a(1);
    int &b=a;
    int const c{1};

    typeid() me donne "i" dans les 3 cas. Or je voudrais le spécficateur de type de variable complet comme est censé le faire decltype. Pour cela, j'aimerais faire des tests avec la fonction qui renvoie le bon type complet.

    Quelle est la fonction le permettant pour decltype ?

    Merci d'avance pour votre aide


    -
    Edité par pseudo-simple 6 novembre 2018 à 15:24:08

    • Partager sur Facebook
    • Partager sur Twitter
      6 novembre 2018 à 15:58:09

      Salut,

      Ce post est typiquement ce qui fait penser à tout le monde que tu te fous bien de ce qu'on dit et/ou que tu ne fais pas suffisamment de recherche de ton côté

      On t'a pourtant donné ce lien plusieurs fois dans l'autre conversation

      • Partager sur Facebook
      • Partager sur Twitter
      Dream on, Dream on, Dream until your dream comes true
        6 novembre 2018 à 16:07:59

        @romantik, ton agressivité à base d'interprétation fausse ("tu te fous bien ...") , tu te la gardes pour toi. D'accord ?

        Cette question concerne le type de retour de la fonction decltype.

        à priori, d'après ma compréhension, ça n'a pas de relation direct avec ce que l'on a mentionné.

        Ou en tout cas, je cherche le lien justement. Je l'ai écrit dans mon message.

        Deuxième argument qui justifie que tes propos sont déplacés : c'est que le lien qui tu as envoyé renvoie, d'après ce que je viens de voir au conseil 4, et j'avais dit à la fille que je voulais éviter de me disperser. Mais, oui, en effet, ton lien est intéressant à postériori du point de vue technique.

        Sinon, garde tes interprétations agressives pour toi.

        -
        Edité par pseudo-simple 6 novembre 2018 à 16:18:07

        • Partager sur Facebook
        • Partager sur Twitter
          6 novembre 2018 à 16:14:38

          Le bouquin donne une solution à base de boost pour cela.
          • Partager sur Facebook
          • Partager sur Twitter
          C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
            6 novembre 2018 à 16:19:26

            YES, man a écrit:

            Cette question concerne le type de retour de la fonction decltype.


            Ok je viens de saisir le problème, tu n'as pas compris ce qu'est decltype, ce n'est pas une fonction, c'est un mot-clé

            • Partager sur Facebook
            • Partager sur Twitter
            Dream on, Dream on, Dream until your dream comes true
              6 novembre 2018 à 16:20:52

              Effectivement @lmghs, merci, je viens de voir, au conseil suivant4  auquel, je ne suis pas encore arrivé, que le livre en parle. C'est un peu après, dans la progression.

              je l'ai notifié à romantik au-dessus
              Merci à toi

              -
              Edité par pseudo-simple 6 novembre 2018 à 16:22:18

              • Partager sur Facebook
              • Partager sur Twitter
                6 novembre 2018 à 16:30:18

                Si tu refuses la réponse parce que c'est après dans la progression, pourquoi est-ce que tu viens poser la question ?

                Moi je ne l'ai pas lu ce bouquin, et je me fous bien que ce soit le conseil 4 à la page 30 ou autre chose, je répond à ta question avec ce qui me semble le plus approprié, le plus proche de ce que tu recherches, et là tu demandes comment afficher le type et l'article a littérallement une section titré "Connaître et afficher le type exact"

                • Partager sur Facebook
                • Partager sur Twitter
                Dream on, Dream on, Dream until your dream comes true
                  6 novembre 2018 à 16:35:48

                  @romantik, merci quand même. effectivement, il y a eu un décalage avec le livre.

                  ça me motive pour démarrer plus rapidement le conseil 4. Je vais donc attendre le conseil 4 pour bien comprendre comme faire ces tests

                  Apparemment, ça se fait avec boost comme l'a dit lmghs et ça confirme ce que dit ton lien

                  -
                  Edité par pseudo-simple 6 novembre 2018 à 16:36:28

                  • Partager sur Facebook
                  • Partager sur Twitter

                  afficher ce que renvoie decltype(a), pas typeid

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown