問題タブ [boost-program-options]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Boost.program_options: Implicit_value と Unicode によりコンパイル時エラーが発生する
Boost.program_options ライブラリを使用しており、Unicode サポートで Implicit_value を指定する必要があります。
ansi-string の場合、このコードは正常に機能します
しかし、このようにUnicodeサポートを使用すると
次のエラーが表示されます。
私は何を間違っていますか?
c++ - 変数を使用せずに Boost Program Options で他のオプションを有効にするオプションを設定するには?
プログラム オプションを使用して、アプリケーションのコマンド ライン オプションを解析しています。
-Ox、-Oy、-Oz などのいくつかのオプションがあり、Ox と Oy を有効にするスーパー オプション -Oall と、Oz と Ow を有効にする別の -Osub が必要です。
Boost Program Options を使用してそれを行う方法はありますか?
最初は、Oall の値を確認してから手動で Ox と Oy を有効にしたかったのですが、解析後に値を編集することはできません。
変数を使用して Ox、Oy の値を格納することは避けたいと思います。これは、多くの論文オプションを使用できるためです。
ありがとう
c++ - ブーストprogram_options:ヘルプと意味のあるオプション
ヘルプオプションを「実際の」プログラムオプションから分離する簡単な方法はありますか?実際、オプションの階層、つまりBNFを定義することは可能ですか?
それとも、これを達成するためのより良い方法はありますか?私は精神に戻るべきですか?
c++ - ブーストプログラムオプションのベクトル引数
関連する質問が2つあります。
Boost Program Optionsを使用して、一連の値を渡すことができる最も簡単な方法は何ですか?私の目的は、回避
prog --opt 1 --opt 2 --opt 3
してprog --opt 1 2 3
代わりに持つことです。正確に2つの数値を取るオプションを使用する最も簡単な方法は何
prog --opt 137 42
ですか?
(「無料の」プログラムパラメータは必要ありません。)
c++ - boost::program_options値をリロードする方法
設定ファイルからいくつかの値をリロードしたいと思います。po::store
に値が存在する場合、値は変更されないことを私は知っていvariables_map
ます。値がすでに存在している場合でも、値を置き換える代替手段はありますか?
リロードしようとしている値をから削除しようとしましたvariables_map
が、po::store
とにかく新しい値を追加しません(古い値にもアクセスできませんが)。
c++ - ブースト プログラム オプションの許可された入力値のセット
パラメータに許可された入力変数のセットを設定する方法はありますか? たとえば、パラメータ「arg」は、「cat」や「dog」などの文字列値のみを持つことができます。
c++ - vm.count()を使用する場合、デフォルト値が常に存在するブーストプログラムオプション
渡されたオプションをboost::program_optionsで検証しようとしています。私のコマンドにはいくつかのモードがあり、それぞれに指定可能なパラメータが関連付けられています。私がやろうとしているのは、これらの関連するパラメータがモードで渡されることを確認することです。
ここ--fly
で、はモードであり--magic-wings-threshold
、は関連するパラメータです。私が気付いたのは--magic-wings-threshold
、デフォルト値があるかどうかです。
それなら私は使えません
ユーザーがそのパラメーターを渡したかどうかを検出します。
デフォルト値のparamsは常に渡され、で検出されるようvm.count()
です。誰かが回避策または代替案を知っていますか?
c++ - boost::program_options の setprecision
boost::program_options が a のヘルプ テキストでオプションのデフォルト値をフォーマットする方法を変更する方法はありますかprogram_options::options_description
(これは から取得できますcout << description
)。特に、浮動小数点数のデフォルト値があるため、通常の 10 進数から 2 進数への変換--arg (0.100000001)
では、非常に醜いヘルプ テキストが表示されます。
cout << setprecision(4)
program_options は、最初にフォーマットを行うためにいくつかの内部ストリームにデフォルト値を設定し<<
ているため (少なくとも、ソース コードを見て推測したことです)、<<
結果cout
の文字列 (ストリーム?)。
ありがとう。
c++ - boost ::program_optionsのデフォルト値の出力で使用するためにoperator<<をオーバーロードする方法は?
boost :: program_optionsを使用していて、「ドメイン」のようなオプションをプログラムに渡したい。そのようなドメインは単純です:
このオプションクラスのカスタムバリデーターを作成しましたが、これはうまく機能します。今、私はデフォルト値を追加したかったので、
boost :: program_optionsが演算子を要求しました<<:
これを追加しましたが、それでも同じエラーメッセージが表示されます。
カスタムオプションの説明で出力されるデフォルト値で使用するoperator<<を定義するにはどうすればよいですか?
もう少し調査しました。エラーは次の場所で発生しboost/lexical_cast.hpp:1147 In member function bool boost::detail::lexical_stream_limited_src<CharT, Traits, RequiresStringbuffer>::shl_input_streamable(InputStreamable&) [with InputStreamable = const CDomain<long double>, CharT = char, Traits = std::char_traits<char>, bool RequiresStringbuffer = true]
ます:
これは名前空間の問題である可能性がありますが、ostream& operator<<(ostream& o, CDomain<T>& d)
boost::detailに移動しても問題は解決しませんでした。
c++ - argv 要素へのポインタを取得 Boost プログラム オプション
メイン関数に渡された文字列の配列は、アプリケーションの実行中は範囲内にあると想定してargv
いvoid main( int argc, char* argv[] )
ます。
したがって、私の質問は、boost::program_options を使用して、特定のオプションを表す argv 内の実際の要素へのポインターを取得できるかどうかです。
std::string
つまり、解析時にa を割り当てるのではなく、文字列オプション値の先頭へのポインターを取得するだけで済みます。