【发布时间】:2020-05-02 19:02:20
【问题描述】:
我想使用 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 选项,则会失败并出现 multiple_occurrences 异常。
多个布尔选项可以用类似的东西来完成
desc.add_options()
("verbose,v", value<std::vector<int> >(), "Increase verbosity");
但这需要给每个选项一个值,比如
./test -v 1 -v 1 -v 1
【问题讨论】: