あなたが OVERKILL と言う前に、私は気にしません。
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 - - -
:
認識されないオプション '-'
位置引数として表示したいのです-
が、完全なファイルリストで正しい順序で必要です。どうすればこれを達成できますか?
アップデート
私は半分修正しています。必要だった
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);
-
問題は、引数を出力すると、3 つのうち 2 つしか得られないように見えることです。
if(vm.count("file"))
support::print(vm["file"].as<vector<string>>());
どこで support::print がベクターなどを適切に処理します。