4

私は現在、プログラムオプションを取得するためにいくつかの古いCライブラリを使用しており、それをいくつかの適切なC ++に置き換えたいと考えています(主にそのライブラリから独立するため、これは実際の負担です)。boost.program_optionsの使用を検討していましたが、必要なものすべてをサポートできるかどうかはわかりません。私が欲しいものは次のとおりです。

  1. 次のコマンドライン構文を許可します:(myprogram option=value特に、構文は必要ありません--option value

  2. 値が提供されていない場合はデフォルト値を使用します(明らかにこれは私のプログラムで実行できますが、オプションライブラリでのサポートがあれば便利です)

  3. デフォルトのオプション(指定しなくても常に存在する)と、すべてのオプションとその説明で構成される自動ヘルプ出力を許可します

  4. 数学的解析を許可myprogram option1=Pi option2=3/5 option3=sqrt(2)します。つまり、(コマンドライン)プログラムで3.1415 ...、0.6、および1.415...を指定します。

  5. 単一の値を展開できるようにします。option_3Dpointに対応させて、と(に展開)std::array<double,3>の両方を機能させたいmyprogram option_3Dpoint=0,0,0myprogram option_3Dpoint=00,0,0

これらのうち、boost.program_optionsでサポートできるのはどれですか?代替案はありますか?

4

1 に答える 1

3

boost.program_optionsは非常に優れたライブラリです。設定ファイルの解析にも使用できます。回答:

  1. わかりませんが、組み込みのサポートはないようです。
  2. はい。
  3. はい。
  4. いいえ、独自の式評価ハンドラーを作成するか、他のブーストライブラリを使用してこれを行う場合を除きます。
  5. 3DPointはい、次のような文字列からオブジェクトを作成する独自のハンドラーを作成する必要があります0,0,0
于 2012-09-25T11:10:46.950 に答える