Partage
  • Partager sur Facebook
  • Partager sur Twitter

Lambdas et return

Sujet résolu
    20 novembre 2017 à 12:22:42

    Bonjour bonjour,

    J'étais en train de bouquiner sur les lambdas quand je suis tombé sur cette exemple tiré de C++ Primer 5th ed :

    std::transform(vec.begin(), vec.end(), vec.begin(),
                   [](int i){ return (i < 0) ? -i : i; }); // OK
                   
    std::transform(vec.begin(), vec.end(), vec.begin(),
                   [](int i){ if (i < 0) return -i; else return i; }); // Error: cannot deduce the return type
    

    Sauf que chez moi le deuxième exemple fonctionne aussi et ne m'indique pas d'erreur, du coup je ne sais pas quoi en penser. Dois-je en conclure que la déduction de type est quand même possible malgrès le fait que ce ne soit pas un "trailing return" et que l'on ne précise pas le type retourné avec -> int ?

    Par avance merci.

    -
    Edité par Guit0Xx 20 novembre 2017 à 12:23:48

    • Partager sur Facebook
    • Partager sur Twitter

    ...

      20 novembre 2017 à 12:37:12

      http://guillaume.belz.free.fr/cpp/cpp14.html#les-fonctions-lambda-g%C3%A9n%C3%A9riques-n3649

      • Partager sur Facebook
      • Partager sur Twitter

      Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

        20 novembre 2017 à 12:48:28

        Ah d'accord donc depuis C++14 on peut se passer de -> type quand il y a plusieurs return du même type. Merci bien !

        -
        Edité par Guit0Xx 20 novembre 2017 à 12:49:45

        • Partager sur Facebook
        • Partager sur Twitter

        ...

          20 novembre 2017 à 12:54:47

          C++ Primer a ete ecrit pour le C++11, mais comme tu peux le voir dans cet article, le C++14 n'est pas tres gros. Tu peux continuer a lire ce livre et lire cet article pour mettre a jour pour le C++14.

          (Il faudrait que je pense a faire un nouvel article pour le C++17...)

          • Partager sur Facebook
          • Partager sur Twitter
            20 novembre 2017 à 13:01:17

            gbdivers a écrit:

            C++ Primer a ete ecrit pour le C++11, mais comme tu peux le voir dans cet article, le C++14 n'est pas tres gros. Tu peux continuer a lire ce livre et lire cet article pour mettre a jour pour le C++14.

            (Il faudrait que je pense a faire un nouvel article pour le C++17...)


            Yes je l'ai ajouté à mes favoris, et merci pour le travail fourni ;)
            • Partager sur Facebook
            • Partager sur Twitter

            ...

            Lambdas et return

            × 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