软件下载 | 资讯教程 | 最近更新 | 下载排行 | 一键转帖 | 发布投稿
您的位置:最火下载站 > 电脑教程 > 编程开发 > C/C++开发 > C++库BOOST之program_options用法示例

C++库BOOST之program_options用法示例

C++库BOOST之program_options用法示例

1 program_options需要编译或者引用libs/program_options目录的源代码
2 编绎时要用g++ -o simple simple.cpp -lboost_program_options -L/usr/local/lib

Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com]
#include <boost/foreach.hpp>
#include <boost/program_options.hpp>
using namespace boost::program_options;
using namespace std;

int print_vm(const options_description &opts, const variables_map &vm)
{
if (vm.size() == 0) {
cout << opts << endl;
return 0;
}

// 解析完成,实现选项处理逻辑
if (vm.count("help")) {
cout << opts << endl; //输出帮助信息
return 0;
}

//输出查找文件名,因为有缺省值,故总存在
cout << "find opt: " << vm["filename"].as<string>() << endl;

if (vm.count("dir")) {
cout << "dir opt:";
BOOST_FOREACH(string str, vm["dir"].as<vector<string> >()) {
cout << str << ",";
}
cout << endl;
}

if (vm.count("depth")) {
cout << "depth opt: " << vm["depth"].as<int>() << endl;
}
}

int main(int argc, char* argv[]) // 需要命令行参数
{
string filename;
options_description opts("Mysql performance options"); //增加两个程序选项
opts.add_options()
("help,h", "help message")
("filename,f", value<string>(&filename)->default_value("text"), "to find a file")
("dir,D", value<vector<string> >()->multitoken(), "search dir")
("depth,d", value<int>()->implicit_value(5), "search depth");

variables_map vm; // 选项存储map容器
store(parse_command_line(argc, argv, opts), vm); //解析参数并存储到vm中
notify(vm);
print_vm(opts, vm);
}
    相关阅读
    网友评论