问题标签 [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 回答
1052 浏览

c++ - boost::program_options 从控制台读取一个整数数组

我想使用 boost::program_options 从控制台读取一个整数数组。数组的长度未知,我不想一次读取所有数据。我怎样才能做到这一点?

我现在正在做的是

$ ./foo --array "1, 2, 3"

然后通过拆分输入字符串填充 arr[] 。

但我想要类似的东西

$ ./foo --array 1 --array 2 --array 3

并在 arr[] 中阅读。还想知道 arr[] 的长度,不想让它成为命令行参数。

0 投票
1 回答
280 浏览

c++ - 是否有解释冒号和逗号符号的解析器?

我是使用 boost::program_options 的新手,我想用冒号和逗号符号解析数字命令行参数。例如,我想有这种论点:

生成一个包含整数 1-100、200 和最后 300 的向量。

这个符号有名字吗?

我的第一个倾向是我必须将此参数视为字符串,然后将其传递给执行解析的函数函数。这似乎是“某人已经做过并可用的事情”的绝佳候选者。

0 投票
1 回答
364 浏览

c++ - 让 boost::program_options 将输入视为 const char* 而不是 std::string

以上将最终尝试从 std::string& 到 Foo& 进行 lex_cast

有没有办法让它从 const char*& 改为 Foo& 进行 lex_cast ?

谢谢!

0 投票
1 回答
1328 浏览

c++ - Boost 库中的编译失败 (program_options)

今天我重建了我的 C++ 应用程序,但编译失败了。什么都没有改变。第一个错误是在我的类List中,它继承自std::vector(私有继承)这里:

我之前必须添加std::vector<T>::push_back(value);因为编译器没有找到任何声明。我真的不知道为什么会这样,但是 g++ 有一个更新,我现在在 Arch Linux 上使用 C++11 使用 g++ v4.7.0(预发行版)。

我解决了这个问题,但现在真正的问题是,由于 Boost library 中的问题,我无法编译应用程序的其余部分program_options。我包括图书馆:

错误:

与我的 List 类相同的错误......</p>

谢谢!

0 投票
1 回答
1638 浏览

c++ - 未定义参考 boost::program_options::abstract_variables_map::operator[]

当我将 program_options 链接到我的共享库时:

由于 abstract_variables_map::operator[] 上的未定义引用,我无法加载库:

我尝试使用静态链接的 program_options 库构建另一个程序(不是共享库),但没有得到未定义的引用。

为什么我在链接共享库时得到未定义的引用?

0 投票
4 回答
900 浏览

c++ - boost::program_options “多态”参数

我想使用 boost::program_options 创建一个可执行文件,可以如下调用:

用最少的代码以类型安全的方式实现这一目标的最佳方法是什么?

0 投票
1 回答
2479 浏览

c++ - 如何在 boost::program_options 中处理未经请求的参数

我用来boost::program_options为我的应用程序提供命令行解析接口。我想配置它来解析选项,

我想对其进行配置,以便在最后一次切换之后的每个标记都以向量的形式返回。我已经尝试collect_unrecognized按照 Boost 文档中给出的示例使用,但我遇到了一些问题,因为我也在使用输入文件的位置参数。

基本上我想这样做。如果我有:

我希望它存储inputfile.abcinput-file值中并返回 a vector<string>of argument1argument2argument3作为未经请求的参数。

但是,我也希望能够进行位置论证,以便

会给我同样的结果。

如果已经有人问过这个问题,我很抱歉,感谢您的帮助。

0 投票
1 回答
377 浏览

c++ - 为什么 boost::program_options 接受切碎的单词?

我有以下程序:

当我运行它时,./myprg --help我得到了我期望的结果:

但是,即使我运行:./myprg --hor ./myprg --heor ,我也会得到相同的结果./myprg --hel。那些最后的选项不应该引发错误吗?

0 投票
1 回答
16939 浏览

c++ - 如何使用 boost 程序选项获取默认参数值?

我想为我的一些命令行参数使用默认值。我如何知道program_options默认选项是什么,如果用户不提供参数,我如何告诉我的程序使用默认值

假设我想要一个参数来指定要发送的机器人数量,默认值为 3。

robotkill --robots 5会产生5 robots have begun the silicon revolution,而 robotkill(没有提供参数)会产生3 robots have begun the silicon revolution.

0 投票
1 回答
277 浏览

c++ - 如何使用 boost::program_options 解析本身包含开关的命令行参数?

我正在用 C++ 编写一个程序,它是一些基准测试的包装器,其中包含开头的一些设置代码和结尾的 analisys 代码。

我想同时运行两个基准测试。这些的原始命令行是:

我想把这些放在我的包装器的命令行上:

我想在哪里获得两个std::vector<std::string>s,每个command0和一个command1,包含原始命令行。这就是我的做法(使用boost::program_options):

这基本上有效。-但是,如果基准测试的参数以(就像我见过的大多数程序上的大多数开关一样)开头,则program_options尝试将它们解析为包装器开关的一部分,因为它不知道它们应该在command0or下组合在一起command1

program_options支持吗?如果是这样,怎么做?


例子:

在我工作的地方,有一个惯例是通过像这样“终止”多令牌来做到这一点:

--command0(在本例中,我以.结尾-command0-。)

我怎么能program_options像这样处理它?