Boost :: program_options - 如果没有提供输入,则打印使用情况

时间:2016-08-29 05:02:40

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

我正在尝试使用Boost program_options来解析我的程序输入。通常,文档提供解析所需的信息。但是,我想让我的程序在没有提供输入时打印使用说明,我似乎无法弄明白。似乎没有"默认"选项也无法找到如何计算提供的输入数量(测试)。

这是我目前的代码:

boost::program_options::options_description help("Usage");
help.add_options()
    ("help", "print help info");

boost::program_options::options_description req("Required inputs");
req.add_options()
    ("root", boost::program_options::value<std::string>(&images_root), "Root directory")

boost::program_options::options_description opt("Option inputs");
opt.add_options()
    ("verbose", boost::program_options::value<bool>(&verbose)->implicit_value(1), "Verbose");

boost::program_options::variables_map vm;
boost::program_options::store(boost::program_options::parse_command_line(argc, argv, all), vm);
if (vm.count("help"))
{
    std::cout << help;
    return 1;
}

boost::program_options::notify(vm);

如何生成以下内容(即如果没有输入std::cout << help)?

./test-file
>> print help info

1 个答案:

答案 0 :(得分:1)

您可以使用argc

执行此操作

例如:

int main(int argc, char** argv)
{
    if( argc <= 1 )
      std::cout << "Print Usage\n";

  return 0;
}