Boost程序选项检测是否使用默认值

Tim*_*mmm 5 boost

我正在使用Boost program_options带有一个参数->default_value()。有什么方法可以判断结果值是由用户在命令行上指定还是由默认值指定?

Tim*_*mmm 5

有一种方法- variable_value::defaulted()

  po::variables_map vm;
  try {
    po::store(po::parse_command_line(argc, argv, desc), vm);
  } catch (std::exception& e) {
    std::cerr << "error parsing command line: " << e.what() << "\n";
    return 1;
  }

  // Needed to set default arguments.
  po::notify(vm);

  if (vm["myparam"].defaulted())
     ...
Run Code Online (Sandbox Code Playgroud)

  • 那很整齐。我今天学到了一些东西:) (2认同)