问题标签 [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 从控制台读取一个整数数组。数组的长度未知,我不想一次读取所有数据。我怎样才能做到这一点?
我现在正在做的是
$ ./foo --array "1, 2, 3"
然后通过拆分输入字符串填充 arr[] 。
但我想要类似的东西
$ ./foo --array 1 --array 2 --array 3
并在 arr[] 中阅读。还想知道 arr[] 的长度,不想让它成为命令行参数。
c++ - 是否有解释冒号和逗号符号的解析器?
我是使用 boost::program_options 的新手,我想用冒号和逗号符号解析数字命令行参数。例如,我想有这种论点:
生成一个包含整数 1-100、200 和最后 300 的向量。
这个符号有名字吗?
我的第一个倾向是我必须将此参数视为字符串,然后将其传递给执行解析的函数函数。这似乎是“某人已经做过并可用的事情”的绝佳候选者。
c++ - 让 boost::program_options 将输入视为 const char* 而不是 std::string
以上将最终尝试从 std::string& 到 Foo& 进行 lex_cast
有没有办法让它从 const char*& 改为 Foo& 进行 lex_cast ?
谢谢!
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>
谢谢!
c++ - 未定义参考 boost::program_options::abstract_variables_map::operator[]
当我将 program_options 链接到我的共享库时:
由于 abstract_variables_map::operator[] 上的未定义引用,我无法加载库:
我尝试使用静态链接的 program_options 库构建另一个程序(不是共享库),但没有得到未定义的引用。
为什么我在链接共享库时得到未定义的引用?
c++ - boost::program_options “多态”参数
我想使用 boost::program_options 创建一个可执行文件,可以如下调用:
用最少的代码以类型安全的方式实现这一目标的最佳方法是什么?
c++ - 如何在 boost::program_options 中处理未经请求的参数
我用来boost::program_options
为我的应用程序提供命令行解析接口。我想配置它来解析选项,
我想对其进行配置,以便在最后一次切换之后的每个标记都以向量的形式返回。我已经尝试collect_unrecognized
按照 Boost 文档中给出的示例使用,但我遇到了一些问题,因为我也在使用输入文件的位置参数。
基本上我想这样做。如果我有:
我希望它存储inputfile.abc
在input-file
值中并返回 a vector<string>
of argument1
,argument2
并argument3
作为未经请求的参数。
但是,我也希望能够进行位置论证,以便
会给我同样的结果。
如果已经有人问过这个问题,我很抱歉,感谢您的帮助。
c++ - 为什么 boost::program_options 接受切碎的单词?
我有以下程序:
当我运行它时,./myprg --help
我得到了我期望的结果:
但是,即使我运行:./myprg --h
or ./myprg --he
or ,我也会得到相同的结果./myprg --hel
。那些最后的选项不应该引发错误吗?
c++ - 如何使用 boost 程序选项获取默认参数值?
我想为我的一些命令行参数使用默认值。我如何知道program_options
默认选项是什么,如果用户不提供参数,我如何告诉我的程序使用默认值?
假设我想要一个参数来指定要发送的机器人数量,默认值为 3。
robotkill --robots 5
会产生5 robots have begun the silicon revolution
,而
robotkill
(没有提供参数)会产生3 robots have begun the silicon revolution
.
c++ - 如何使用 boost::program_options 解析本身包含开关的命令行参数?
我正在用 C++ 编写一个程序,它是一些基准测试的包装器,其中包含开头的一些设置代码和结尾的 analisys 代码。
我想同时运行两个基准测试。这些的原始命令行是:
我想把这些放在我的包装器的命令行上:
我想在哪里获得两个std::vector<std::string>
s,每个command0
和一个command1
,包含原始命令行。这就是我的做法(使用boost::program_options
):
这基本上有效。-
但是,如果基准测试的参数以(就像我见过的大多数程序上的大多数开关一样)开头,则program_options
尝试将它们解析为包装器开关的一部分,因为它不知道它们应该在command0
or下组合在一起command1
。
program_options
支持吗?如果是这样,怎么做?
例子:
在我工作的地方,有一个惯例是通过像这样“终止”多令牌来做到这一点:
--command0
(在本例中,我以.结尾-command0-
。)
我怎么能program_options
像这样处理它?