Partage
  • Partager sur Facebook
  • Partager sur Twitter

Passer un nombre d'arguments variable.

    22 novembre 2017 à 15:21:56

    Bonjour,

    J'aimerai savoir si il était possible comme en python de passer une liste de variable en paramètre. C'est à dire à partir d'une liste d'entier par exemple obtenir l'appel de la fonction avec chaque élément de la liste en arguments bien distincts. L'idée dernière est d'appeler une fonction python avec boost python.
    Merci d'avance de prendre le temps de me répondre.

    • Partager sur Facebook
    • Partager sur Twitter
      22 novembre 2017 à 15:25:56

      Oui, heureusement, sinon des fonctions comme printf ne pourraient pas fonctionner.

      Plus de détails ici.

      -
      Edité par zoup 22 novembre 2017 à 15:26:06

      • Partager sur Facebook
      • Partager sur Twitter
        22 novembre 2017 à 15:29:42

        Merci de ta réponse.
        Mais j'ai déjà pris connaissance des va_lists. Le problème est que je veux faire exactement l'inverse de ça. C'est à dire avoir une sorte de va_liste que je rempli avec des variable que je fini par envoyé en paramètre. J’espère que j'ai été un peu plus claire.
        • Partager sur Facebook
        • Partager sur Twitter
          22 novembre 2017 à 15:37:30

          Lu',

          Si les variables ont toutes le même type tu peux passer par un std::vector. Sinon, il faudra voir du coté des variadics.

          • Partager sur Facebook
          • Partager sur Twitter

          Eug

            22 novembre 2017 à 15:50:10

            Merci eugchriss,

            Je pense que le variadics pourra peut-être me sauver. Je vous redit si j'ai réussi à faire ce que je veux.

            Bonne fin de journée

            • Partager sur Facebook
            • Partager sur Twitter
              22 novembre 2017 à 16:00:01

              L'avantage des variadiques du C: on peut ne définir la fonction que dans un seul .cpp, et la déclarer dans un .h. Mais, ce n'est compatible qu'avec les POD, c'est facile d'avoir des erreurs de typages, et il ne faut compter sur aucun support de la part du compilateur.

              L'avantage des templates variadiques du C++: c'est tout l'opposé de ceux du C (relativement à ce que j'ai décrit plus haut).

              Dans tous les cas, on n'a pas encore de support officiel pour des paramètres nommés, de base on n'a que les positionnels. Il faut recourir à des feintes plus ou moins portables. J'en ai listé quelques unes à la fin d'une expérience: https://github.com/LucHermitte/NamedParameter#see-also

              -
              Edité par lmghs 22 novembre 2017 à 16:00:57

              • 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.

              Passer un nombre d'arguments variable.

              × 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