在boost :: program_options中使用空的long参数并使用count函数

时间:2019-05-30 14:59:48

标签: c++ boost command-line-arguments

我正在尝试将boost :: program_options与一个空的long参数(双连字符)和一个short参数一起使用。

在这种情况下,即使传递了count(",h")参数,-h始终返回0。

这是一个简短的示例(示例输入./bin -h

    #include <iostream>
    #include <boost/program_options.hpp>

    namespace po = boost::program_options;

    int main(int argc, char* argv[])
    {
      po::options_description test("test");
      test.add_options()
        (",h", "help");

      po::variables_map vm;
      po::store(po::parse_command_line(argc, argv, test), vm);
      po::notify(vm);

      if(vm.count(",h"))
        {
          std::cout<<"Success\n"; // never reaches here
        }

      return 0;
    }

在使用空长参数时调用vm.count()函数的正确方法是什么?


通常,短自变量被认为是长自变量的缩写。在上面的示例中,更好的选择是("help,h", "help"),然后vm.count("help")将同时计算--help-h。但是省略长参数herehere.引起了一定的兴趣,因此我想使其工作而不用为每个短参数分配一个长参数。

0 个答案:

没有答案