【发布时间】:2020-10-27 20:30:22
【问题描述】:
我正在使用 boost program_options 来解析命令行参数,并且我正在尝试利用位置参数功能。目标是使输入“--tool”成为可选,并假设第一个参数是工具,如果“--tool”没有明确输入。
这显然不是 boost 参数的工作方式,正如 boost 文档中所述:https://www.boost.org/doc/libs/1_54_0/doc/html/boost/program_options/positional_opt_idp87697168.html 它说“主要假设是只有位置选项本身的相对顺序很重要,并且任何交错普通选项不会影响位置选项的解释。”
这与我想要的相反。就我而言,我有一个参数“--tool”,它也可以是第一个位置参数,但现在如果有人明确使用--tool,任何进一步的位置或未注册的参数都会被解释为第二个--tool选项,抛出存储()。我希望它最终成为下一个位置参数应该是什么。
我猜我必须自己去修改 command_line_parser 的返回值来清理它?还是我忽略了某些功能?
【问题讨论】:
标签: c++ boost boost-program-options