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
してofを返し、未承諾の引数として返したいと思います。input-file
vector<string>
argument1
argument2
argument3
ただし、位置引数を使用できるようにしたいので、
./program "inputfile.abc" argument1 argument2 argument3
同じ結果が得られます。
これがすでに尋ねられている場合は申し訳ありませんが、助けてくれてありがとう.