fli*_*ies 18 c++ boost boost-program-options
我想为我的一些命令行参数使用默认值.如何判断program_options默认选项是什么,如果用户没有提供参数,如何告诉我的程序使用默认值?
假设我想要一个参数来指定在杀人狂暴中发送的机器人数量,默认值为3.
robotkill --robots 5会产生5 robots have begun the silicon revolution,而
robotkill(没有提供论据)会产生3 robots have begun the silicon revolution.
fli*_*ies 20
program_options当用户不提供这些选项时,会自动为选项分配默认值.您甚至不需要检查用户是否提供了给定选项,在任何一种情况下都只使用相同的分配.
#include <iostream>
#include <boost/program_options.hpp>
namespace po = boost::program_options;
int main (int argc, char* argv[]) {
po::options_description desc("Usage");
desc.add_options()
("robots", po::value<int>()->default_value(3),
"How many robots do you want to send on a murderous rampage?");
po::variables_map opts;
po::store(po::parse_command_line(argc, argv, desc), opts);
try {
po::notify(opts);
} catch (std::exception& e) {
std::cerr << "Error: " << e.what() << "\n";
return 1;
}
int nRobots = opts["robots"].as<int>();
// automatically assigns default when option not supplied by user!!
std::cout << nRobots << " robots have begun the silicon revolution"
<< std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13276 次 |
| 最近记录: |