问题标签 [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.

0 投票
1 回答
4042 浏览

c++ - boost::program_options 中带和不带参数的参数

我编写了一个使用 boost::program_options 进行命令行解析的小应用程序。如果参数存在,我想要一些选项来设置一个值,如果给定参数但不存在参数,则交替打印当前值。所以“设置模式”看起来像:

和“获取模式”将是:

问题是,我不知道如何在不捕获此异常的情况下处理第二种情况:

有没有一种简单的方法可以避免它抛出该错误?一旦参数被解析,它就会发生。

0 投票
1 回答
1855 浏览

c++ - Boost.Program_options 固定数量的令牌

Boost.Program_options 提供了一种通过命令行参数传递多个令牌的工具,如下所示:

但是,只接受固定数量的参数的首选方式是什么?我能想到的唯一解决方案是手动分配值:

这感觉有点笨拙。有更好的解决方案吗?

0 投票
3 回答
13662 浏览

c++ - BOOST program_options:解析多个参数列表

我想传递具有正值或负值的多个参数。是否可以解析它?

目前我有以下初始化:

我想打电话给:

因此,program_options 假设我将-2作为另一个选项传递。

我可以将 program_options 配置为可以接受负整数值吗?

谢谢阿曼。

编辑: 顺便说一句,我正在通过简单的解析器解析它

,但解决方案是使用扩展的:

0 投票
2 回答
2486 浏览

c++ - boost::program_options 错误或功能?

非常简单的例子:

还有一些测试:

看起来 boost::program_option 威胁参数“csv”为“csv_name”。
它是功能还是错误?

0 投票
1 回答
2686 浏览

c++ - 如何将 boost options_description 与十六进制输入一起使用?

我希望程序有两个选项可以运行,开始地址和结束地址,以便程序选项如下:

是否可以options_description采用这种十六进制输入?我是否必须将输入视为字符串并将它们转换为十六进制值。我现在有这个:

可以boost::lexical_cast做这样的转换吗?

0 投票
3 回答
6626 浏览

boost - boost::program_options 中的 default_value 和implicit_value 有什么区别?

这就是问题所在。为什么我要使用implicit_value 而不是default_value,反之亦然?

谢谢!

0 投票
1 回答
1845 浏览

c++ - boost::program_options 可以使用“-”以外的分隔符吗?

我正在使用 boost::program_options 像这样:

如果我传递命令行参数-I hithere它可以工作,但是我传递/I hithereboost 会抛出一个boost::bad_any_castwhat()使用 boost::any_cast 转换失败”。

是否可以使用 program_options 来解析/-delimited 或--delimited 选项?额外的问题,它可以配置为/设置-相同的选项,但彼此是二元对立的吗?例如,/verbose可能意味着详细的日志记录,而-verbose可能意味着不太详细的日志记录。

0 投票
1 回答
7141 浏览

c++ - 使用 Boost 的 program_options 处理复杂的选项

我有一个使用不同的多级模型生成图形的程序。每个多级模型都包含一代较小的种子图(例如,50 个节点),该种子图可以从多个模型创建(例如 - 对于每个可能的边,选择以概率 p 包含它)。

在种子图生成之后,使用另一组模型中的一个将图扩展为更大的图(例如 1000 个节点)。

在这两个阶段的每一个阶段,每个模型都需要不同数量的参数。

我想让 program_options 根据模型的名称解析不同的可能参数。

例如,假设我有两个种子图模型:SA,有 1 个参数,SB,有两个。同样对于扩展部分,我有两个模型:A 和 B,同样分别具有 1 和 2 个参数。我希望能够做类似的事情:

并正确解析参数。这甚至可能吗?

0 投票
2 回答
349 浏览

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 链接的问题不是好的库。

0 投票
3 回答
4354 浏览

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 的另一个正确解决方案。两者都有效,但手动标记化更清晰。