私はboost :: program_optionsライブラリを使ってコマンドラインパラメータを処理しています。 -rオプションでファイル名を受け入れる必要があります。空の場合(-rはparamsなしで指定します)、stdinを使う必要があります。boost :: program_optionsで空の値を受け入れる方法
desc.add_options()
("replay,r", boost::program_options::value<std::string>(), "bla bla bla")
この場合、boostではparamsなしで-rを受け入れられず、例外がスローされます。 default_value()オプションは、ユーザーが-rオプションを指定しなくても、ライブラリの戻り値と同様に機能しません。
どのように対処するのですか?
ありがとうございました!完全に動作します – cppalex
@Vladimir Prus、ここには値がないオプションについての別の質問がありますhttp://stackoverflow.com/questions/7174781/boost-program-options-notifier-for-options-with-no-value 私はしたいそのようなオプションにノーティファイヤーを追加したり、それを有効にするためのパッチを書くことができます。してください、ありがとう、ありがとう。 – Riga
残念ながら、何らかの理由でINIファイルに空の値が指定されていると、これは機能しません。 –