問題タブ [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.

0 投票する
2 に答える
1168 参照

c++ - Boost.program_options: Implicit_value と Unicode によりコンパイル時エラーが発生する

Boost.program_options ライブラリを使用しており、Unicode サポートで Implicit_value を指定する必要があります。

ansi-string の場合、このコードは正常に機能します

しかし、このようにUnicodeサポートを使用すると

次のエラーが表示されます。

私は何を間違っていますか?

0 投票する
1 に答える
195 参照

c++ - 変数を使用せずに Boost Program Options で他のオプションを有効にするオプションを設定するには?

プログラム オプションを使用して、アプリケーションのコマンド ライン オプションを解析しています。

-Ox、-Oy、-Oz などのいくつかのオプションがあり、Ox と Oy を有効にするスーパー オプション -Oall と、Oz と Ow を有効にする別の -Osub が必要です。

Boost Program Options を使用してそれを行う方法はありますか?

最初は、Oall の値を確認してから手動で Ox と Oy を有効にしたかったのですが、解析後に値を編集することはできません。

変数を使用して Ox、Oy の値を格納することは避けたいと思います。これは、多くの論文オプションを使用できるためです。

ありがとう

0 投票する
1 に答える
992 参照

c++ - ブーストprogram_options:ヘルプと意味のあるオプション

ヘルプオプションを「実際の」プログラムオプションから分離する簡単な方法はありますか?実際、オプションの階層、つまりBNFを定義することは可能ですか?

それとも、これを達成するためのより良い方法はありますか?私は精神に戻るべきですか?

0 投票する
2 に答える
28453 参照

c++ - ブーストプログラムオプションのベクトル引数

関連する質問が2つあります。

  1. Boost Program Optionsを使用して、一連の値を渡すことができる最も簡単な方法は何ですか?私の目的は、回避prog --opt 1 --opt 2 --opt 3してprog --opt 1 2 3代わりに持つことです。

  2. 正確に2つの数値を取るオプションを使用する最も簡単な方法は何prog --opt 137 42ですか?

(「無料の」プログラムパラメータは必要ありません。)

0 投票する
2 に答える
2747 参照

c++ - boost::program_options値をリロードする方法

設定ファイルからいくつかの値をリロードしたいと思います。po::storeに値が存在する場合、値は変更されないことを私は知っていvariables_mapます。値がすでに存在している場合でも、値を置き換える代替手段はありますか?

リロードしようとしている値をから削除しようとしましたvariables_mapが、po::storeとにかく新しい値を追加しません(古い値にもアクセスできませんが)。

0 投票する
3 に答える
11915 参照

c++ - ブースト プログラム オプションの許可された入力値のセット

パラメータに許可された入力変数のセットを設定する方法はありますか? たとえば、パラメータ「arg」は、「cat」や「dog」などの文字列値のみを持つことができます。

0 投票する
2 に答える
3490 参照

c++ - vm.count()を使用する場合、デフォルト値が常に存在するブーストプログラムオプション

渡されたオプションをboost::program_optionsで検証しようとしています。私のコマンドにはいくつかのモードがあり、それぞれに指定可能なパラメータが関連付けられています。私がやろうとしているのは、これらの関連するパラメータがモードで渡されることを確認することです。

ここ--flyで、はモードであり--magic-wings-threshold、は関連するパラメータです。私が気付いたのは--magic-wings-threshold、デフォルト値があるかどうかです。

それなら私は使えません

ユーザーがそのパラメーターを渡したかどうかを検出します。

デフォルト値のparamsは常に渡され、で検出されるようvm.count()です。誰かが回避策または代替案を知っていますか?

0 投票する
1 に答える
586 参照

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の文字列 (ストリーム?)。

ありがとう。

0 投票する
1 に答える
1049 参照

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に移動しても問題は解決しませんでした。

0 投票する
0 に答える
348 参照

c++ - argv 要素へのポインタを取得 Boost プログラム オプション

メイン関数に渡された文字列の配列は、アプリケーションの実行中は範囲内にあると想定してargvvoid main( int argc, char* argv[] )ます。

したがって、私の質問は、boost::program_options を使用して、特定のオプションを表す argv 内の実際の要素へのポインターを取得できるかどうかです。

std::stringつまり、解析時にa を割り当てるのではなく、文字列オプション値の先頭へのポインターを取得するだけで済みます。