如何在Boost :: Program_Options中支持命令行语法"-DEVICE:iphone"?

MQ *_* Gu 6 c++ boost boost-program-options

Boost :: Program_Options的默认语法是"--DEVICE iphone".我如何支持语法"-DEVICE:iphone"或"-DEVICE = iphone"?

Nic*_*las 5

Boost.Program_Options有很多选项样式.你似乎想要的特殊组合将是:

command_line_style::long_allow_adjacent |
command_line_style::short_allow_adjacent |
command_line_style::allow_long_disguise
Run Code Online (Sandbox Code Playgroud)

这些选项应该赋予style命令行解析器的功能:

    po::store(po::command_line_parser(argc, argv).style(<your styles here>).run(), vm);
Run Code Online (Sandbox Code Playgroud)

  • 这不会处理':'作为选项/值分隔符.为此,需要一个自定义解析器,这是文档"Howto"部分中的第一个项目. (3认同)