Vous utilisez le variables_map
pour vérifier si des options ont été spécifiées. Si vous avez ajouté une option appelée "file"
et votre variables_map
a été appelé vm
:
if(vm.count("myoption")) { ... } // Returns 0 if myoption not specified. 1 or more if it was.
Une fois que vous avez utilisé add_options
d'ajouter quelques options, vous pouvez y accéder comme si, en supposant que vous avez configuré un nom variables_map
vm
:
vm["myoption"].as<int>() // Will return an int, assuming your option is an int
vm["myoption"].as<std::string>() // Will return an std::string, assuming your option is an int
Dans votre cas, vous souhaitez convertir l'une des options spécifiées en une séquence d'entiers. Vous pouvez le faire comme ceci:
vm["myoption"].as< std::vector<int> >()
qui renvoie un vecteur contenant les 3 nombres entiers, vous pouvez indexer et utiliser comme tout vecteur normal. Pour voir s'il y a spécifiquement 3, utilisez simplement la fonction de membre vectoriel size()
.
Le tutoriel d'amplification à ce sujet est situé here.