"Specify commands file"); boost::program_options::variables_map vmap; boost::program_options::positional_options_description poptd; poptd.add ("file", 1); poptd.add("do-file", 2); boost::program_options::store( boost::program_options::command_line_parser(ac, av). options(options).pos...
调用boost::program_options::store将从这个数据结构中解析的数据存储在variables_map对象vm中(第 31-35 行)。最后,我们检查程序是否在没有参数或使用help选项的情况下调用,并打印帮助字符串(第 39 行)。将option_description实例desc流式传输到ostream会打印一个帮助字符串,该字符串是根据desc中编码的命令行规则...
在此例中,help 选项不需要任何参数,但是file 选项需要一个字符串参数。 variables_map 类在运行时存储命令行选项及其参数。 Boost 的 parse_command_line 例程解析 argc 和 argv 参数。store 和 notify 方法帮助存储 vmap 对象中的数据。 当您检查 help 是否为程序的恰当命令行选项(这是 vmap.count("help") 所...
然后定义了一个boost::program_options::variables_map对象,它是一个map,key元素为选项的name,value元素为Boost::any对象。 然后开始对命令行输入进行解析,首先使用boost::program_options::parse_command_line进行解析,然...
//variables_map(选项存储器)是std::map的派生类,可以像关联容器一样使用, //通过operator[]来取出其中的元素.但其内部的元素类型value_type是boost::any, //用来存储不确定类型的参数值,必须通过模板成员函数as<type>()做类型转换后, //才能获取其具体值. ...
add_options()("help,h","help guide") ("port,p",opt::value<int>(),"ip port") //p相当 ("address,a",opt::value<std::string>(),"ip address"); //用来保存命令行的数据 opt::variables_map vm; //要解析参数,不过要先判断命令行的参数个数,否则会导致异常 if (argc <2 ){ std::...
主要组件 program_options的使用主要通过下面三个组件完成: 组件名作用 options_description(选项描述器) 描述当前的程序定义了哪些选项 parse_command_line(选项分析器) 解析由命令行输入的参数 variables_map(选项存储器) 容器,用于存储解析后的选项 代码流程来源:http://www.cnblogs.com/taolusi/p/9294423.html智能...
(boost::program_options::variables_map&)", referenced from: _main in geodesic.o "boost::program_options::validate(boost::any&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_...
(1024), "传入扫描起始端口"), ("EndPort,e", opt::value<int>()->default_value(65535), "传入扫描结束端口"), ("Help,h", "弹出帮助菜单"); // 解析参数将值传递给virtual_map opt::variables_map virtual_map; try { opt::store(opt::parse_command_line(argc, argv, desc), virtual_map)...
boost::program_options::variables_map vm; try{ boost::program_options::store(boost::program_options::parse_command_line(argc, argv, desc), vm); boost::program_options::notify(vm); } catch(boost::exception& e) { std::cerr<< boost::diagnostic_information(e) <<std::endl; ...