Boost程序选项语法
Boost Program Options Syntax
我使用boost::program_options从命令行参数中读取用户的输入。它工作得非常好,允许我输出有用的使用消息并正确验证输入。但是,默认情况下,长选项名称必须出现在双破折号后面,例如--my_long_option
,短选项名称必须出现在单破折号后面,和必须是单个字符,例如;-m
.
有没有办法…
- 允许在单个
-
之后进行长选项? - 允许短选项有多个字符?
这样就允许我的命令行看起来像
./a.out -myopt1 foo -myopt2 bar
这两种可能性应该具有相同的效果,尽管从编程的角度来看,第一种可能更好。我看了看boost::program_options::command_line_style,但它看起来不像它可以做我需要的。
感谢Edit:要使其使用该样式,必须添加以下代码(遵循boost文档的命名约定)
po::store(
po::command_line_parser(ac,av)
.options(desc)
.style(
po::command_line_style::unix_style
| po::command_line_style::allow_long_disguise)
.run(),
vm);
根据定义,短选项只有一个字符。如果他们有更多的选择,他们会做多。
要允许长选项以一个破折号开始,包括allow_long_disguise
命令行样式,如您链接到的文档页面所述:
可以通过与短选项相同的字符引入长选项,参见allow_long_disguise。
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 助记符和指向成员语法的指针
- 有人能分解一下这个c++模板的语法吗
- C++避免重复声明的语法是什么
- Win32编译器选项和内存分配
- QMetaObject invokeMethod的基于函数指针的语法
- C/C++预处理器是否可以检测一些编译器选项
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 是否有C++编译器选项允许激进地删除所有函数调用,并将参数传递给具有空体的函数
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- 通过选项卡的文本设置QTabWidget顺序
- 通过ccmake在cmake中缓存依赖选项
- 在C++标准中,语法选项的表示中没有隐含的排序,这种说法正确吗
- C++ 语法 - 模板<类...选项>
- 提升程序选项 添加选项语法
- Visual Studio 2012:错误LNK1117:选项 'MAPINFO:LINES' 中的语法错误
- Boost程序选项语法
- LNK1117:选项 "VERSION:1.0.0" 中的语法错误