オプションのフラグを実装する必要があります。たとえば、-f
/--flag
。これはフラグであるため、関連付けられた値はありません。私のコードでは、フラグが設定されているかどうかを知る必要があるだけです。 boost :: program_optionsを使用してこれを行う適切な方法は何ですか?
これを行う便利な方法は、bool_switch
機能を使用することです。
bool flag = false;
namespace po = boost::program_options;
po::options_description desc("options");
desc.add_options()
("flag,f", po::bool_switch(&flag), "description");
po::variables_map vm;
//store & notify
if (flag) {
// do stuff
}
これは、文字列を手動でチェックするよりも安全です(文字列は定義全体で1回だけ使用されます)。
通常どおり使用しますが、値はありません。
boost::program_options::options_description od("allowed options");
od.add_options()
("flag,f", "description");
po::variables_map vm;
// store/ notify vm
if (vm.count("flag")) {
// flag is set
}
例として、 はじめに オプションhelpを参照してください。