c++ - 我可以使用 Boost::program_options 将可猜测和不可猜测的选项一起解析吗?

标签 c++ boost boost-program-options

我有一些非常冗长的选项,比如 -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/

相关文章:

multithreading - upgrade_lock 导致饥饿

java - ORBInitialHost 参数

c++ - Boost 程序选项和 shared_ptr

c++ - 在 WASM 中访问当前 URL (c/c++)

java - C++ "Object"类

c++ - 如果在其他线程仍在运行时调用 exit(0) 会发生什么?

c++ - 在线性时间内在给定位置将字符就地插入到字符串中

c++ - 基于 boolean C++ 确定值的最快方法

c++ - boost 单元测试模板会产生臃肿的代码。如何避免这种情况?

c++ - Boost 库中的编译失败(program_options)