Vecteur des arguments de Stimuler les Options du Programme
J'ai deux questions connexes:
-
Quel est le plus simple façon à permettre la transmission d'une série de valeurs, à l'aide de Stimuler les Options du Programme? Mon but est d'éviter de
prog --opt 1 --opt 2 --opt 3
et ontprog --opt 1 2 3
à la place. -
Quelle est la façon la plus simple d'avoir une option qui prend exactement deux chiffres, par exemple
prog --opt 137 42
?
(Je n'ai pas besoin de "libre" paramètres du programme.)
InformationsquelleAutor Szabolcs | 2011-11-17
Vous devez vous connecter pour publier un commentaire.
Pour la première partie, cela devrait fonctionner
La deuxième partie, nécessite un peu plus de travail. La fonction
po::value
renvoie unepo::typed_value< T, charT >
sur lequel vous aurez à remplacer le comportement de plusieurs fonctions, comme suitqui doit être accompagné par
Puis
devrait fonctionner. Je n'ai pas encore eu la chance de le tester, il contient probablement quelques bugs. Mais, au minimum, devrait vous donner une idée de ce dont vous avez besoin.
po::typed_value< T, charT >
doit être modifié pourpo::typed_value< std::vector< T >, charT >
.std::array
s oustd::lists
s plutôt que des vecteurs?std::array
sera un peu difficile car je ne sais pas ce qui est utilisé pour les insérer dans le conteneur, mais qui est susceptible configurable, et sa taille fixe aurait besoin d'un peu d'adaptation. En revanche,std::list
n'a pas ces limitations, je crois que vous pouvez l'utiliser en remplacement.C'est une réponse tardive mais j'espère que cela aide quelqu'un. Vous pouvez facilement utiliser la même technique dans l'élément n ° 1, sauf que vous devez ajouter une autre validation sur le nombre d'éléments dans le vecteur:
de rcollyer exemple: