我目前使用一些旧的 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 可以支持哪些?有没有其他选择?