该应用程序有两个选项:a
和file
。file
是一个位置选项。两者a
都有file
一个字符串类型的参数,可以省略。(我为两者都设置了一个隐式空字符串)。
所需的行为如下:
$ program
->file: ""
$ program file.txt
->file: "file.txt"
$ program --a
->a: "", file: ""
$ program --a file.txt
->a: "", file: "file.txt"
$ program --a x file.txt
->a: "x", file: "file.txt"
但是,选项 4 被解释为a: "file.txt", file: ""
. 有什么方法可以告知 program_options 如何解决这种模棱两可的情况?($ program --a -- file.txt
确实可以按预期工作,但我也希望在没有额外内容的情况下也能正常工作。)我目前使用空字符串表示“未指定”,但这不是必需的。