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工作正常。