Используйте boost :: program_options для указания нескольких флагов - PullRequest
1 голос
/ 16 января 2020

Я хочу использовать boost :: program_options, чтобы указать требуемое многословие, что довольно часто встречается. Например,

./test -v # verbosity = 1 
./test -vvv # verbosity = 3 
./test -v blah blah -v # verbosity = 2 

Я знаю, как сделать несколько вариантов, которые требуют значения, хотя я хочу, чтобы это было несколько случаев переключения. Один переключатель может быть выполнен с чем-то вроде

desc.add_options()
   ("verbosity,v", bool_switch(), "Increase verbosity");

, но это не с исключением с множеством_оккурсоров, если указано более одного параметра -v.

Несколько логических параметров могут быть выполнены с чем-то вроде

desc.add_options()
   ("verbose,v", value<std::vector<int> >(), "Increase verbosity");

, но для этого требуется, чтобы каждому параметру было присвоено значение, например

./test -v 1 -v 1 -v 1
...