ライブラリで、boost::program_options
を介して追加されていないパラメータをユーザーが渡すことを許可する方法がわかりませんadd_options()
。
プログラムを終了するのではなく、単に無視したいのです。
3070 次
2 に答える
11
今夜、まったく同じ問題に遭遇しました。@TASの答えは私を正しい道に導きましたが、特定のユースケースの正確な構文を理解するのに20分かかりました。
これを書く代わりに、未知のオプションを無視するには:
po::variables_map vm;
po::store(po::parse_command_line(argc, argv, desc), vm);
po::notify(vm);
私はこれを書きました:
po::variables_map vm;
po::store(po::command_line_parser(argc, argv).options(desc).allow_unregistered().run(), vm);
po::notify(vm);
中央の行のみが異なることに注意してください。
一言で言えば、呼び出しの後にいくつかの「ぶら下がっているビット」(つまり、 )を付けて、commandline_parser()
ではなく使用します。parse_commandline()
.options(desc).allow_unregistered().run()
于 2016-03-23T02:56:33.250 に答える
10
boost :: program_optionsドキュメントから方法:不明なオプションを許可する
parsed_options parsed =
command_line_parser(argc, argv).options(desc).allow_unregistered().run();
于 2013-03-21T18:22:44.273 に答える