5
我使用boost::program_options
爲我的應用程序提供命令行解析接口。我想配置它來解析選項,如何處理boost :: program_options中的未經請求的參數
using namespace boost::program_options;
options_description desc("Allowed options");
desc.add_options()
("help,h", "produce help message")
("version,v", "print the version number")
("include-path,I", value< vector<string> >(), "include path")
("input-file,i", value<string>(), "input file");
positional_options_description p;
p.add("input-file", 1);
variables_map vm;
parsed_options parsed = command_line_parser(ac, av).
options(desc).positional(p).run();
store(parsed, vm);
notify(vm);
我想配置它,以便在最後一次切換後的每個標記以矢量形式返回。我曾嘗試使用collect_unrecognized
按照Boost文檔中給出的示例,但我遇到了一些問題,因爲我也使用輸入文件的位置參數。
基本上我想這樣做。如果我有:
./program -i "inputfile.abc" argument1 argument2 argument3
我想它來存儲inputfile.abc
在input-file
價值和回報的argument1
,argument2
和argument3
爲未經請求的參數的vector<string>
。
我會然而,也希望能夠有一個位置參數,使
./program "inputfile.abc" argument1 argument2 argument3
會給我同樣的結果。
對不起,如果這已被問及感謝您的幫助。