【问题标题】:boost::program_options: How to specify a command without "--" or "-"boost::program_options:如何指定没有“--”或“-”的命令
【发布时间】:2012-07-30 06:55:11
【问题描述】:

我正在使用 boost::program_options 来实现具有以下语法的命令行实用程序:

myutil command [--in file_name] [---out file_name]

其中“命令”是强制性的,并且是以下之一:

read | write | find | version | help

问题是“命令”不应该需要 ---,我还没有找到如何使用 boost::program_options 来做到这一点。

【问题讨论】:

    标签: c++ boost boost-program-options


    【解决方案1】:

    没有名字的命令行选项被称为positional options

    po::positional_options_description p;
    p.add("command", -1);
    po::variables_map vm;
    po::store(po::command_line_parser(ac, av).
              options(desc).positional(p).run(), vm);
    

    【讨论】:

    • 是的,这行得通。一个重要的警告:位置选项也应该作为常规选项添加:po::positional_options_description p;p.add("command", -1);boost::program_options::options_description desc;desc.add_options()("command", "read | write | find | version | help");po::variables_map vm;po::store(po::command_line_parser(ac, av).options(desc).positional(p).run(), vm);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-08
    相关资源
    最近更新 更多