青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

zhujian

揣著夢想騎驢找馬但不虐待驢
posts - 10, comments - 7, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

Boost program_options

Posted on 2011-01-13 11:17 逐漸 閱讀(1901) 評論(0)  編輯 收藏 引用
boost program_options庫可以幫助我們解析程序參數,支持命令行形式和配置文件形式,獲得(name, value)對.下面我們以一個模擬編譯器例子介紹program_options庫的應用,在下一節繼續介紹program_options整個庫.

 1 #include <boost/program_options.hpp>
 2 
 3 #include <vector>
 4 #include <iostream>
 5 #include <string>
 6 #include <algorithm>
 7 #include <iterator>
 8 using std::copy;
 9 using std::vector;
10 using std::string;
11 using std::cout;
12 using std::endl;
13 using std::exception;
14 using std::ostream;
15 using std::ostream_iterator;
16 
17 namespace po=boost::program_options;
18 
19 // output vector.
20 template <typename T>
21 ostream& operator<<(ostream& os, const vector<T>& v)
22 {
23     copy(v.begin(), v.end(), ostream_iterator<T>(os, " "));
24     return os;
25 }
26 
27 int main(int argc, char*argv[])
28 {
29     try
30     {
31         po::options_description desc("general descriptions.");
32         desc.add_options()
33             ("help""generate help information")
34             ("input-file", po::value<vector<string> >(), "input files")
35             ("link-file,l", po::value<vector<string> >(), "link file");
36 
37         po::variables_map vm;
38         po::store(po::parse_command_line(argc, argv, desc), vm);
39         po::notify(vm);
40 
41         if(vm.count("help"))
42         {
43             cout<<desc<<endl;
44             return 1;
45         }
46 
47         if(vm.count("input-file"))
48         {
49             cout<<"Input files: "<<vm["input-file"].as<vector<string> >()
50                 <<"\n";
51         }
52 
53         if(vm.count("link-file"))
54         {
55             cout<<"Link file: "<<vm["link-file"].as<vector<string> >()
56                 <<"\n";
57         }
58     }
59     catch(exception& e)
60     {
61         cout<<e.what()<<endl;
62         return -1;
63     }
64 
65     return 0;
66 }
67 

程序第20行重載了<<運算符,用于輸出vector數組.
第31行定義一個選項描述組件,然后添加允許的選項,add_options()方法返回一個特定對象,該對象重載了()運算.link-file選項指定了短名l,這樣--link-file與-l一個意思.
第37行定義一個存儲器組件對象vm.
第38行分析器parse_command_line將選項描述存儲至vm,這里用到的分析器很簡單,后面會介紹更復雜的應用.

接下來的代碼就是比對vm中存放的選項了,簡單吧,很好理解.下面是運行截圖,編譯需要添加boost program_options庫,即-lboost_program_option

對于input-file選項,每次都要輸出--input-file真的很麻煩,能不能用compiler main.cpp呢,當然可以.這種選項叫做positional option, 在第36行處加上如下代碼:
1         po::positional_options_description p;
2         p.add("input-file"-1);
3 

修改第38行,我們要用到功能更強大的command_line_parse,改成如下:
1  po::store(po::command_line_parser(argc, argv).options(desc).positional(p).run(), vm);
編譯運行:看下結果吧

先到這里吧,接下來再看從文件中讀選項:)



只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            日韩午夜电影| 亚洲私人影吧| 亚洲无线视频| 欧美日韩国产色视频| 亚洲激情视频在线播放| 国内成+人亚洲+欧美+综合在线| 亚洲欧美久久久| 久久久久国色av免费观看性色| 欧美暴力喷水在线| 久久日韩精品| 国产欧美综合一区二区三区| 99re66热这里只有精品3直播| 在线视频一区二区| 国产精品系列在线| 麻豆成人av| 久久电影一区| 亚洲精品久久久久久一区二区| 欧美精品一区二区三| 亚洲欧美久久久久一区二区三区| 久久综合中文字幕| 国产九九精品视频| 亚洲视频图片小说| 欧美黄色大片网站| 亚洲国产一区二区精品专区| 国产精品久久久久av| 老色鬼久久亚洲一区二区| 久久久精品性| 韩日视频一区| 国产精品黄视频| 欧美成人在线免费观看| 午夜精品久久99蜜桃的功能介绍| 欧美国产日产韩国视频| 91久久久国产精品| 欧美aⅴ99久久黑人专区| 亚洲一区二区三区成人在线视频精品| 欧美成人精品在线观看| 欧美一区二区三区在线观看| 国产日韩欧美三区| 久久久久欧美精品| 亚洲免费影院| 久久免费黄色| 欧美在线免费观看| 亚洲小少妇裸体bbw| 亚洲美女精品成人在线视频| 欧美日韩情趣电影| 欧美激情在线免费观看| 女人色偷偷aa久久天堂| 久久久久久999| 亚洲欧洲日本国产| 午夜国产欧美理论在线播放| 国产欧美日韩在线观看| 国产精品成人av性教育| 欧美一区二区三区视频免费播放| 美女主播视频一区| 99伊人成综合| 日韩视频精品| 99视频精品| 国产午夜精品久久久久久久| 久久深夜福利免费观看| 久久一综合视频| 亚洲乱码国产乱码精品精98午夜| 亚洲精品久久7777| 欧美亚洲在线| 欧美va天堂在线| 毛片一区二区三区| 你懂的视频一区二区| 9l视频自拍蝌蚪9l视频成人| 99精品国产高清一区二区 | 亚洲国产精品精华液2区45| 免费在线亚洲欧美| 亚洲一区三区视频在线观看| 黑人巨大精品欧美黑白配亚洲 | 国产精品网站视频| 国产一区二区三区精品久久久| 欧美女激情福利| 欧美日韩1区| 国产欧美va欧美不卡在线| 韩国av一区二区三区四区| 曰韩精品一区二区| 亚洲美女视频在线观看| 亚洲午夜激情在线| 欧美制服丝袜第一页| 久久久久久网站| 亚洲一本大道在线| 日韩一级大片| 午夜精品美女久久久久av福利| 久久久久久久网| 91久久国产综合久久蜜月精品 | 99精品欧美一区| 欧美在线视频播放| 欧美99在线视频观看| 亚洲精品一区在线| 亚洲欧美春色| 亚洲欧美高清| 麻豆成人91精品二区三区| 欧美视频在线观看| 欧美三区美女| 国产精品久久久久久亚洲调教| 国产午夜精品一区二区三区欧美| 欧美视频不卡| 尤物99国产成人精品视频| 国产视频一区在线观看| 国产精品无码永久免费888| 在线观看欧美一区| 在线免费不卡视频| 性欧美8khd高清极品| 91久久精品国产91久久性色| 性欧美长视频| 欧美在线免费视频| 欧美www视频| 国产日韩久久| 亚洲男女自偷自拍| 欧美国产日韩二区| 亚洲欧美日本伦理| 欧美久色视频| 亚洲国产欧美一区二区三区同亚洲 | 欧美精品乱码久久久久久按摩| 老巨人导航500精品| 国产精品亚洲片夜色在线| 在线亚洲一区二区| 久久电影一区| 一区二区三区久久精品| 免费日韩av片| 欧美日韩一区二区三区视频| 亚洲精品久久在线| 亚洲深夜影院| 欧美在线免费观看视频| 久久这里只有| 亚洲精品国产拍免费91在线| 性色一区二区| 美女啪啪无遮挡免费久久网站| 一区二区三区视频观看| 欧美成人午夜视频| 国产在线高清精品| 亚洲国产婷婷| 一区二区欧美激情| 欧美成人综合在线| 浪潮色综合久久天堂| 亚洲国产岛国毛片在线| 可以免费看不卡的av网站| 韩国一区二区三区美女美女秀| 亚洲日韩欧美视频| 亚洲二区三区四区| 欧美国产日韩一区二区| 99热免费精品| 亚洲一区二区在线看| 国产亚洲美州欧州综合国| 日韩一区二区精品视频| 在线综合亚洲欧美在线视频| 一本色道久久综合| 国产精品大全| 影音先锋日韩资源| 亚洲视频一区二区在线观看 | 999亚洲国产精| 欧美性猛交一区二区三区精品| 亚洲午夜在线观看| 亚洲男人第一av网站| 国产乱码精品一区二区三| 亚洲第一在线综合网站| 欧美激情区在线播放| 欧美日韩美女在线| 亚洲国产欧美在线人成| 亚洲国产aⅴ天堂久久| 亚洲精品国产精品国自产观看浪潮 | 欧美有码在线观看视频| 欧美一级视频一区二区| 亚洲国产欧美一区二区三区久久 | 亚洲综合三区| 欧美肥婆在线| 国产日本欧美视频| 久久成人一区| 亚洲视频一二三| 欧美日韩国产一级片| 亚洲欧洲视频在线| 免费国产自线拍一欧美视频| 亚洲永久视频| 国产精品捆绑调教| 欧美激情精品久久久久久蜜臀| 国产精品成人国产乱一区| 欧美18av| 美日韩丰满少妇在线观看| 一区二区三区在线免费播放| 一区二区三区精品视频在线观看| 欧美精品日韩www.p站| 久久国产66| 亚洲韩国日本中文字幕| 欧美激情第9页| 久久久久久久一区二区| 欧美日韩免费网站| 欧美成人午夜剧场免费观看| 麻豆精品在线观看| 久久成人免费| 国产精品丝袜91| 99精品国产在热久久婷婷| 国产精品美女主播在线观看纯欲| 亚洲高清自拍| 欧美色123| 91久久国产自产拍夜夜嗨| 亚洲国产经典视频| 欧美亚洲一区|