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

what can and can't I do with boost.program_options?

本文关键字:什么 不能 options boost program 我可以      更新时间:2023-10-16

我目前使用一些旧的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对象
相关文章: