問題タブ [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 はコンソールから整数配列を読み取ります
boost::program_options を使用してコンソールから整数配列を読み取りたい。配列の長さは不明で、1 回の試行ですべてのデータを読み取りたくありません。どうやってやるの?
私が今やっていることは、
$ ./foo --array "1, 2, 3"
次に、入力文字列を分割して arr[] に入力します。
しかし、私は次のようなものが欲しい
$ ./foo --array 1 --array 2 --array 3
そしてarr[]でそれを読んでください。また、arr[] の長さを知りたいのですが、それをコマンドライン パラメータにしたくありません。
c++ - コロンとコンマの表記を解釈するパーサーはありますか?
boost::program_options を使用するのは初めてで、コロンとコンマ表記を使用して数値のコマンド ライン引数を解析したいと考えています。たとえば、次のような引数が必要です。
整数 1 ~ 100、次に 200、最後に 300 のベクトルを生成します。
この表記に名前はありますか?
私の最初の傾向は、この引数を文字列として扱い、解析を行う関数関数に渡す必要があるということです。これは、「誰かがすでに行って利用可能にしたもの」の優れた候補のようです。
c++ - 入力を std::string ではなく const char* として扱うための boost::program_options の取得
上記は、最終的に std::string& から Foo& への lex_cast を実行しようとします。
const char*& から Foo& への lex_cast を代わりに行う方法はありますか?
ありがとう!
c++ - Boost ライブラリ (program_options) でコンパイルが失敗する
今日、C++ アプリケーションを再構築しましたが、コンパイルに失敗しました。しかし、何も変わっていません。最初のエラーは、ここで(プライベート継承)List
から継承する私のクラスにありました:std::vector
コンパイラによって宣言が見つからなかったため、std::vector<T>::
前に追加する必要がありました。push_back(value);
なぜそうなったのかはよくわかりませんが、g++ の更新があり、現在 Arch Linux で C++11 を使用して g++ v4.7.0 (プレリリース) を使用しています。
私はその問題を修正しましたが、実際の問題は、Boost ライブラリの問題のためにアプリケーションの残りの部分をコンパイルできないことですprogram_options
。ライブラリには次のものを含めます。
エラー:
List クラスと同じエラー…</p>
ありがとうございました!
c++ - 未定義の参照 boost::program_options::abstract_variables_map::operator[]
program_options を共有ライブラリにリンクしている場合:
abstract_variables_map::operator[] の参照が未定義のため、ライブラリを読み込めません:
program_options ライブラリが静的にリンクされた別のプログラム (共有ライブラリではない) をビルドしようとしましたが、未定義の参照が取得されませんでした。
共有ライブラリをリンクしているときに未定義の参照が発生するのはなぜですか?
c++ - boost ::program_options"polymorphic"引数
boost :: program_optionsを使用して、次のように呼び出すことができる実行可能ファイルを作成したいと思います。
最小限のコードで、タイプセーフな方法でこれを達成するための最良の方法は何ですか?
c++ - boost::program_options で非請求パラメータを処理する方法
boost::program_options
私は自分のアプリケーションにコマンド ライン解析インターフェイスを提供するために使用します。オプションを解析するように設定したいのですが、
最後の切り替え後のすべてのトークンがベクトルの形式で返されるように構成したいと思います。collect_unrecognized
Boost のドキュメントに記載されている例に従って使用してみましたが、入力ファイルに位置引数も使用しているため、いくつかの問題が発生しました。
基本的にはこのようにしたいと思います。私が持っている場合:
値に格納inputfile.abc
してofを返し、未承諾の引数として返したいと思います。input-file
vector<string>
argument1
argument2
argument3
ただし、位置引数を使用できるようにしたいので、
同じ結果が得られます。
これがすでに尋ねられている場合は申し訳ありませんが、助けてくれてありがとう.
c++ - boost::program_options が切り捨てられた単語を受け入れるのはなぜですか?
次のプログラムがあります。
で実行すると、./myprg --help
期待どおりの結果が得られます。
ただし、実行しても同じ結果が得られます:./myprg --h
または./myprg --he
または./myprg --hel
. これらの最後のオプションはエラーをスローするべきではありませんか?
c++ - ブーストプログラムオプションでデフォルトの引数値を取得するにはどうすればよいですか?
コマンドライン引数の一部にデフォルト値を使用したいと思います。デフォルトオプションが何であるかを知るにはどうすればよいですprogram_options
か。また、ユーザーが引数を指定しない場合は、プログラムにデフォルト値を使用するように指示するにはどうすればよいですか。
デフォルト値3で、殺人的な大暴れで送信するロボットの数を指定する引数が必要だとします。
robotkill --robots 5
を生成5 robots have begun the silicon revolution
しますが、
robotkill
(引数が指定されていない場合)はを生成し3 robots have begun the silicon revolution
ます。
c++ - boost :: program_optionsを使用して、スイッチ自体を含むコマンドライン引数を解析するにはどうすればよいですか?
私はC++でプログラムを書いています。これは、最初にいくつかのセットアップコードを含み、最後にanalisysコードを含むいくつかのベンチマークのラッパーです。
最大2つのベンチマークを並行して実行したいと思います。これらの元のコマンドラインは次のとおりです。
そして、これらをラッパーのコマンドラインに配置したいと思います。
元のコマンドラインを含む、とstd::vector<std::string>
のそれぞれに1つずつ、合計2つのを取得したい場合。これは私がそれをしている方法です(を使用して):command0
command1
boost::program_options
これは基本的に機能します。-
ただし、ベンチマークの引数が(私が見たほとんどのプログラムのほとんどのスイッチのように)で始まる場合、またはprogram_options
の下にグループ化する必要があることを認識していないため、ラッパーのスイッチの一部としてそれらを解析しようとします。command0
command1
program_options
それをサポートしていますか?もしそうなら、どのように?
例:
私が働いているところでは、次のようにマルチトークンを「終了」することによってこれを行うための規則があります。
(この例では、で終了--command0
しまし-command0-
た。)
どうすればprogram_options
このように処理できますか?