2014-09-11 84 views
1

隨着的boost :: program_options,如果參數不是---/選項的一部分(無論是自己的選擇和他們可能的值),可我抓住的這些單獨的參數列表?是否有可能使用boost :: program_options來捕獲不帶短劃線的參數?

例如,我想寫一個ls程序。我希望我能有類似的實現,如:

ls -l --color=always <file_dir_1> <file_dir_2> ... <file_dir_n> 

在那裏我可以捕捉<file_dir_1> ... <file_dir_n>和專門處理它們。

+2

它已在[教程](http://www.boost.org/doc/libs/1_56_0/doc/html/program_options/tutorial.html)中解決。 – 2014-09-11 08:22:42

回答

2

這些被稱爲「位置選項」。 Boost.Program選項按名稱轉發到現有的選項處理這些:

po::positional_options_description p; 
p.add("input-file", -1); // forward positional options to "input-file" option 

po::variables_map vm; 
po::store(po::command_line_parser(ac, av). // replace po::parse_command_line(...) 
      options(desc).positional(p).run(), vm); 
po::notify(vm); 

你想有「輸入文件」爲std::vector<std::string>類型的現有選項。

相關問題