c++ - 我可以用 boost.program_options 做什么和不能做什么?

标签 c++ boost boost-program-options

我目前使用一些旧的 C 库来获取程序选项,并想用一些适当的 C++ 替换它(主要是为了独立于该库,这是一个真正的负担)。我正在考虑使用 boost.program_options,但我不确定它能否支持我想要的一切。我想要的一些东西是:

  1. 允许以下命令行语法:myprogram option=value (特别是,我真的不想要 --option value 语法)

  2. 如果未提供任何值,则使用默认值(显然这可以在我的程序中完成,但选项库中的支持会很好)

  3. 允许默认选项(即使我不提供它们也始终存在)和包含所有选项及其描述的自动帮助输出

  4. 允许数学解析,即(命令行)myprogram option1=Pi option2=3/5 option3=sqrt(2)在我的程序中给出 3.1415...、0.6 和 1.415...

  5. 允许扩展单个值。让option_3Dpoint对应一个std::array<double,3> ,我都想要 myprogram option_3Dpoint=0,0,0myprogram option_3Dpoint=0 (扩展到 0,0,0)工作

boost.program_options 可以支持哪些?有没有其他选择?

最佳答案

boost.program_options 是非常好的库。您也可以使用它来解析配置文件。答案:

  1. 不知道,但似乎没有内置支持。
  2. 是的。
  3. 是的。
  4. 否,除非您制作自己的表达式评估处理程序或使用其他一些 boost 库来执行此操作。
  5. 是的,您需要编写自己的处理程序,它从 0,0,0 等字符串创建 3DPoint 对象

关于c++ - 我可以用 boost.program_options 做什么和不能做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12581480/

相关文章:

c++ - 使用 boost::program_options 指定多个标志

c++ - 如何将字符串流中的数据打印到文件中?

c++ - 在 boost 单位和持续时间之间转换

c++ - 如何使用 boost 屏障

c++ - 不能多次指定选项 '--opt'

c++ - 具有隐含值的Boost程序选项错误地获取位置选项的值

c++ - 在 opencv 2.3 中从 RGB 图像中分离出红色分量图像

c++ - 使用 tcpdump 捕获服务器-客户端通信

c++ - 使用 pqexecparams 通过 libpq 插入点

c++ - 使用带有类型删除的 reverse_iterator