问题标签 [boost-program-options]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - boost::program_options 中带和不带参数的参数
我编写了一个使用 boost::program_options 进行命令行解析的小应用程序。如果参数存在,我想要一些选项来设置一个值,如果给定参数但不存在参数,则交替打印当前值。所以“设置模式”看起来像:
和“获取模式”将是:
问题是,我不知道如何在不捕获此异常的情况下处理第二种情况:
有没有一种简单的方法可以避免它抛出该错误?一旦参数被解析,它就会发生。
c++ - Boost.Program_options 固定数量的令牌
Boost.Program_options 提供了一种通过命令行参数传递多个令牌的工具,如下所示:
但是,只接受固定数量的参数的首选方式是什么?我能想到的唯一解决方案是手动分配值:
这感觉有点笨拙。有更好的解决方案吗?
c++ - BOOST program_options:解析多个参数列表
我想传递具有正值或负值的多个参数。是否可以解析它?
目前我有以下初始化:
我想打电话给:
因此,program_options 假设我将-2作为另一个选项传递。
我可以将 program_options 配置为可以接受负整数值吗?
谢谢阿曼。
编辑: 顺便说一句,我正在通过简单的解析器解析它
,但解决方案是使用扩展的:
c++ - boost::program_options 错误或功能?
非常简单的例子:
还有一些测试:
看起来 boost::program_option 威胁参数“csv”为“csv_name”。
它是功能还是错误?
c++ - 如何将 boost options_description 与十六进制输入一起使用?
我希望程序有两个选项可以运行,开始地址和结束地址,以便程序选项如下:
是否可以options_description
采用这种十六进制输入?我是否必须将输入视为字符串并将它们转换为十六进制值。我现在有这个:
可以boost::lexical_cast
做这样的转换吗?
boost - boost::program_options 中的 default_value 和implicit_value 有什么区别?
这就是问题所在。为什么我要使用implicit_value 而不是default_value,反之亦然?
谢谢!
c++ - boost::program_options 可以使用“-”以外的分隔符吗?
我正在使用 boost::program_options 像这样:
如果我传递命令行参数-I hithere
它可以工作,但是我传递/I hithere
boost 会抛出一个boost::bad_any_cast
“what()
使用 boost::any_cast 转换失败”。
是否可以使用 program_options 来解析/
-delimited 或-
-delimited 选项?额外的问题,它可以配置为/
设置-
相同的选项,但彼此是二元对立的吗?例如,/verbose
可能意味着详细的日志记录,而-verbose
可能意味着不太详细的日志记录。
c++ - 使用 Boost 的 program_options 处理复杂的选项
我有一个使用不同的多级模型生成图形的程序。每个多级模型都包含一代较小的种子图(例如,50 个节点),该种子图可以从多个模型创建(例如 - 对于每个可能的边,选择以概率 p 包含它)。
在种子图生成之后,使用另一组模型中的一个将图扩展为更大的图(例如 1000 个节点)。
在这两个阶段的每一个阶段,每个模型都需要不同数量的参数。
我想让 program_options 根据模型的名称解析不同的可能参数。
例如,假设我有两个种子图模型:SA,有 1 个参数,SB,有两个。同样对于扩展部分,我有两个模型:A 和 B,同样分别具有 1 和 2 个参数。我希望能够做类似的事情:
并正确解析参数。这甚至可能吗?
c++ - boost::program_options 缓冲区溢出
我在使用 boost:program_options 时遇到问题
这个简单的程序,从 boosts 的文档中复制粘贴:
因缓冲区溢出而失败。
我已经激活了“缓冲区安全开关”,当我运行它时,当我越过线路时,我得到一个“未知异常(0xc0000409)”desc.add_options()...
我使用 Visual Studio 2005 和 boost 1.43.0。
顺便说一句,如果我停用开关,它确实会运行,但这样做我感觉不舒服……除非可以在本地停用它。
那么你有解决这个问题的方法吗?
编辑 我发现我与 libboost_program_options-vc80-mt.lib 链接的问题不是好的库。
c++ - 可以 Boost Program_options 分隔逗号分隔的参数值
如果我的命令行是:
可以设置 Boost 的 program_options 来查看参数的三个不同的参数值mylist
吗?我已将 program_options 配置为:
当我检查mylist
参数的值时,我看到一个值为a,b,c
. 我想看到三个不同的值,用逗号分隔。如果我将命令行指定为:
或者
有没有办法配置 program_options 以便将其a,b,c
视为应插入向量中的三个值,而不是一个?
我正在使用 boost 1.41、g++ 4.5.0 20100520,并启用了 c++0x 实验扩展。
编辑:
公认的解决方案有效,但最终变得更加复杂,IMO,而不是仅仅遍历向量并手动拆分值。最后,我接受了 James McNellis 的建议并以这种方式实施。但是,他的解决方案并未作为答案提交,因此我接受了 hkaiser 的另一个正确解决方案。两者都有效,但手动标记化更清晰。