如何在 cxxopts 和命令行中使用布尔标志?

问题描述 投票:0回答:1

我定义:

options.add_options()
  ("m, monitor", "Monitor current state", cxxopts::value<bool>()->default_value("true"));

如何在命令行中使用标志

m
在 Linux 上运行
test
可执行文件?

这个:

./test -m "false"
./test -m false

不起作用。


我的案例将

true
作为
m
的默认值,我想运行
test
,其中
m
具有
false
值。可以吗?

c++ linux command-line-arguments
1个回答
0
投票

此行为在 cxxopts 文档 中进行了描述。正确的做法是

./test -m=false

布尔选项参数不能用空格分隔,因为该选项需要在没有参数的情况下使用来指定标志的

true
值,使其参数与位置参数无法区分。

© www.soinside.com 2019 - 2024. All rights reserved.