我有一些非常冗长的选项,比如 -length
-strength
我想允许他们猜测,以便用户可以删掉他们的名字。
另一方面,一些选项的短名称相互包含,例如 -K1
-K10
,对于那些当然应该禁用猜测。
我还有一个位置选项,我想保留对选项的所有标准检查:例如,我不想允许未知(错误输入)的选项。
我想知道是否有一种方法可以通过 Boost::program_options 实现这一点...
最佳答案
至于I read the docs , allow_guessing
做你想做的事。
事实上,它根本不允许猜测:
allow_guessing
Allow abbreviated spellings for long options, if they unambiguously identify long option. No long option name should be prefix of other long option name if guessing is in effect.
当然,后者听起来像是一个令人担忧的限制,但实际上并非如此。它只是告诉你,如果你有 --Kool
以及 --KoolAid
那么猜测甚至会使完整的 --Kool
变得模棱两可(因为它可能是 --KoolAid
的缩写)。
--KoolA
不会有歧义。 也不应该 -K
(注意单破折号),因为它不是长格式选项,因此永远不可能是缩写。
关于c++ - 我可以使用 Boost::program_options 将可猜测和不可猜测的选项一起解析吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25686767/