使用boost::program_options的不带破折号的参数



我正在编写现有软件的新实现(洁净室实现,因此无法访问旧代码(,以及一个新的命令行接口,我需要模拟旧接口以与现有工作流兼容。我在新旧接口之间进行选择,这取决于调用可执行文件的名称,例如busybox。

旧的命令行接口基本上使用键值对,但没有任何"-"或"="字符。例如

./oldcode Key1 value1 Key2 value2 Key3 value3 ...

我已经在使用boost了,所以如果可以的话,我想坚持使用program_options。最简单的方法是简单地解析选项,而不需要在参数开始时使用和"--",但我看不到这样做的方法。

这在program_options中可行吗?还是我最好为此编写一个自定义解析器?

你必须为它编写一个自定义解析器,这并不难:(尤其是当你发现什么的时候。

boost机制排除了键值对的=sing。

如果您不想自己编写,请使用现有的代码:https://github.com/jarro2783/cxxopts

最新更新