【发布时间】:2013-07-19 09:10:31
【问题描述】:
我正在使用 boost::program_options 为我的程序传递配置文件。特别是我经常使用命令行覆盖一些选项。例如,如果我注册了两个选项“opt1”和“opt2”,我可以通过使用
运行我的程序来成功覆盖默认值 myProgram.exe --opt1=option_value_1 --opt2=option_value_2
一切都好,但我已经有几次错误地运行我的程序了
myProgram.exe --opt1=option_value_1 opt2=option_value_2
在这种情况下(缺少双连字符)不会引发错误。事实上,我显然可以将 myProgram 运行为
myProgram.exe list of any unregistered and unknown values
它仍然可以正常运行。我希望至少能得知发生了一些意想不到的事情。我的问题有解决方案吗?
【问题讨论】:
-
验证未知的选项值(它们应该出现在输入文件列表中或您从未知参数中获取的任何内容中,例如检查这些文件是否存在)。
标签: c++ boost boost-program-options