【发布时间】:2026-01-25 10:30:01
【问题描述】:
我正在像这样使用 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);
如果我传递命令行参数 -I hithere 它可以工作,但我传递 /I hithere boost 会抛出一个 boost::bad_any_cast 和 what() “使用 boost::any_cast 转换失败”。
是否可以使用 program_options 来解析 /-delimitted 或 --delimited 选项?额外的问题,是否可以将其配置为 / 和 - 设置相同的选项,但彼此相反?例如,/verbose 可能意味着详细的日志记录,而-verbose 可能意味着不太详细的日志记录。
【问题讨论】: