Joh*_*ing 7 c++ boost-program-options
我正在使用boost :: program_options这样:
namespace po = boost::program_options;
po::options_description desc("Options");
desc.add_options()
("help,?", "Show Options")
("capture-file,I", po::value<string>(), "Capture File")
("capture-format,F", po::value<string>()->default_value("pcap"), "Capture File Format")
("output-file,O", po::value<string>()->default_value("CONOUT$"), "Output File");
po::variables_map vm;
po::store(po::command_line_parser(ac, av).options(desc)./*positional(pd).*/run(), vm);
Run Code Online (Sandbox Code Playgroud)
如果我通过命令行参数-I hithere它的工作原理,但我通过/I hithere升压抛出了boost::bad_any_cast一个what()"使用boost :: any_cast失败的转换"的.
是否可以使用program_options来解析/-delimitted或--delimitted选项?奖金的问题,可以将其进行配置,以便/和-设置相同的选项,但在彼此的二元对立?例如,/verbose可能意味着详细记录,而-verbose可能意味着更简洁的记录.
Jos*_*ley 10
要使用/和-,请使用带有style_t标志的适当组合command_line_parser的style()方法.例如:
po::store(po::command_line_parser(ac, av)
.options(desc)
.style(po::command_line_style::default_style
| po::command_line_style::case_insensitive
| po::command_line_style::allow_slash_for_short
| po::command_line_style::allow_long_disguise)
/*.positional(pd)*/
.run(), vm);
Run Code Online (Sandbox Code Playgroud)
(allow_long_disguise让我们/开始一个长期的选择.)
您可以通过添加自己的附加解析器来制作/和-对立; 然而,这将是非标准的,因此可能使最终用户感到困惑,所以我不确定这是一个好主意.
| 归档时间: |
|
| 查看次数: |
1656 次 |
| 最近记录: |