在你說OVERKILL之前,我不在乎。用boost.program_options處理' - '
我該如何讓Boost.program_options處理所需的cat
選項-
?
我
// visible
po::options_description options("Options");
options.add_options()("-u", po::value<bool>(), "Write bytes from the input file to the standard output without delay as each is read.");
po::positional_options_description file_options;
file_options.add("file", -1);
po::variables_map vm;
po::store(po::command_line_parser(argc, argv).options(options).positional(file_options).run(), vm);
po::notify(vm);
bool immediate = false;
if(vm.count("-u"))
immediate = true;
if(vm.count("file"))
support::print(vm["file"].as<vector<string>>());
當我運行cat - - -
會拋出一個異常:
無法識別的選項 ' - '
我希望看到-
的位置參數,我需要在完整的文件列表中以正確的順序。我怎麼能做到這一點?
UPDATE
我有一個半修復。我需要
po::options_description options("Options");
options.add_options()("-u", po::value<bool>(), "Write bytes from the input file to the standard output without delay as each is read.")
("file", po::value< vector<string> >(), "input file");
po::positional_options_description file_options;
file_options.add("file", -1);
問題是,我似乎只得到2三-
當我輸出的參數:
if(vm.count("file"))
support::print(vm["file"].as<vector<string>>());
其中支持::印刷精美的處理矢量和東西。
Boost.PO具有其自己的(有限的)選項語法。可能你可以使用Boost.PO來獲得你想要的語法。 – Abyx
@Oli:完成。謝謝。 – rubenvb