我可以用boost.program_options做什么和不能做什么?
what can and can't I do with boost.program_options?
我目前使用一些旧的C库来获取程序选项,并希望用一些合适的C++来取代它(主要是为了独立于该库,这是一个真正的负担)。我正在考虑使用boost.program_options,但不确定它是否能支持我想要的所有功能。我想要的是:
-
允许以下命令行语法:
myprogram option=value
(特别是,我并不真正想要--option value
语法) -
如果没有提供值,请使用默认值(显然这可以在我的程序中完成,但选项库中的支持会很好)
-
允许默认选项(即使我没有给出它们,它们也总是存在)和由所有选项及其描述组成的自动帮助输出
-
允许数学解析,即(命令行)
myprogram option1=Pi option2=3/5 option3=sqrt(2)
在我的程序中给出3.1415…、0.6和1.415 -
允许扩展单个值。让
option_3Dpoint
对应于std::array<double,3>
,我希望myprogram option_3Dpoint=0,0,0
和myprogram option_3Dpoint=0
(扩展到0,0,0
)都能工作
boost.program_options可以支持以下哪一项?有其他选择吗?
boost.program_options是一个非常好的库。您也可以使用来解析配置文件。答案:
- 不知道,但似乎没有内置支持
- 是的
- 是的
- 不可以,除非您制作自己的表达式求值处理程序或使用其他boost库来完成此操作
- 是的,您需要编写自己的处理程序,从类似
0,0,0
的字符串创建3DPoint
对象
相关文章:
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 我可以在这里替换什么,因为我不能在 C# 中使用隐式变量的 lambda 函数?
- 为什么此指针值不能转换为整数的规则是什么?
- 为什么左值不能改变自己。左值用户是什么意思?
- 十进制到二进制的实现不能完全适用于我大学的检查器。问题或提示可能是什么
- 一个对象什么时候可以有非零大小的一个,但不能同时具有一个或多个字节的存储
- 字符串文本不能有外部链接的原因是什么?
- 什么形式上保证了非原子变量不能看到凭空出现的值,并像理论上原子一样创造数据竞赛?
- 不能做嵌套函数,有什么办法呢?
- 制作uint128库却不能,找出什么功能搞砸了
- 在 c++ 中什么可以(和什么不能)引发异常?
- 不能让类是微不足道的可复制的。我做错了什么?
- 我可以用boost.program_options做什么和不能做什么?
- 什么不能接受字符串向量并用 offest 和 assigmnet 运算符替换任何字符串的字符?
- C++。为什么我不能编译此代码?使用const_cast去除恒常性有什么问题?
- cin.get() 有效,但不能使用 cin.getline().我对cin.getline()做错了什么或误解了什么
- 这个模板"specialization"代码在做什么,为什么它可以编译但不能按预期工作?
- 你能指定什么不是 std::getline 中的分隔符吗?
- 图形程序不能在borlandc++中运行.我能做什么呢?
- 函数指针-不能更改函数签名,我有什么选择