You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Linux下通过cxxopts将默认true的布尔标志设为false?

解决cxxopts布尔选项设为false的问题

你当前定义的是带值的布尔类型选项,默认值为true。要将其设为false,有几种可行的操作方式:

  • 使用等号连接选项与值:
    ./test -m=false
    # 或者用长选项形式
    ./test --monitor=false
    
  • 传入数字0替代false:
    ./test -m=0
    
  • 利用cxxopts自动生成的反向开关(对布尔类型选项默认支持):
    ./test --no-m
    

你之前尝试的./test -m false无效,是因为cxxopts处理带值布尔选项时,用空格分隔选项和参数的情况下,会把false识别为位置参数而非选项的值,必须用等号连接或反向开关才能正确解析。

如果想更直观地用开关逻辑(加-m开启,不加则关闭),可以修改选项定义,去掉value<bool>():

options.add_options()
  ("m, monitor", "Monitor current state");

这种定义下默认状态为false,添加-m则变为true;若需要默认true,关闭时用--no-m即可。

内容的提问来源于stack exchange,提问作者Paul Jurczak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 08:23:17