C++ 我可以用Boost::program\u选项一起解析可猜测和不可猜测的选项吗?

C++ 我可以用Boost::program\u选项一起解析可猜测和不可猜测的选项吗?,c++,boost,boost-program-options,C++,Boost,Boost Program Options,我有一些非常详细的选项,比如-length-strength,我想允许猜测它们,以便用户可以剪切它们的名称 另一方面,一些选项具有彼此包含的简短名称,如-K1-K10,当然,对于那些选项,应该禁用猜测 我还有一个位置选项,我想保留所有选项的标准检查:例如,我不想允许未知(键入错误)选项 我想知道是否有一种方法可以通过Boost::program\u options…实现这一点,只要,允许猜测就可以了 事实上,它根本不允许猜测: 允许猜测 允许长选项使用缩写拼写,如果它们明确标识长选项。若猜测有效

我有一些非常详细的选项,比如
-length
-strength
,我想允许猜测它们,以便用户可以剪切它们的名称

另一方面,一些选项具有彼此包含的简短名称,如
-K1
-K10
,当然,对于那些选项,应该禁用猜测

我还有一个位置选项,我想保留所有选项的标准检查:例如,我不想允许未知(键入错误)选项

我想知道是否有一种方法可以通过Boost::program\u options…

实现这一点,只要,
允许猜测就可以了

事实上,它根本不允许猜测:

允许猜测

允许长选项使用缩写拼写,如果它们明确标识长选项。若猜测有效,则“无长选项名”应为其他长选项名的前缀

当然,后者听起来像是一个令人担忧的限制,但事实并非如此。它只是告诉你,如果你有
--Kool
以及
--kooled
,那么猜测甚至会使完整的
--Kool
变得模棱两可(因为它可能是
--kooled
的缩写)

--KoolA
不会模棱两可也不应该是
-K
(注意单破折号),因为它不是一个长格式选项,因此不可能是缩写。

你说得太对了!我将“如果猜测有效,则无长选项名称应为其他长选项名称的前缀”错误地改为“如果要使用猜测,则不能定义像
--K1
--K10
这样的选项”,但事实并非如此。当前版本的Boost::po工作正常。