問題タブ [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 - INI ファイルで同じ名前の複数のセクションを処理する方法
以下のような構成で; 個々のセクションを処理する方法はありますか。
以下の個々の「サーバー」セクションを信頼できる方法で検証する方法を探しています。
command-line - boost::program_optionsを使用する
私のプログラムには、名前とサイズのペアのリストがあります。
を使用してコマンドラインインターフェイスからこのリストを作成したいと思いますboost::program_options
。
次のようになります。
myProg --value( "John"、10)--value( "Steve"、14)--value( "Marge"、28)
私もこれを整理する必要があります-スティーブはジョンの後、リストのマージの前になります。それは可能boost::program_options
ですか?
このCLI構文は、リストを取得するための単なるアイデアです。あなたがより良いものを持っているなら、教えてください。
c++ - Boost::program_options のビルド方法 (Linux の場合)
boost::program_options
公式の指示に従って使用しようとしています: http://www.boost.org/doc/libs/1_36_0/more/getting_started/unix-variants.html#link-your-program-to-a-boost-library
しかし、うまくいきません:
これは機能しますが、奇妙です:
c++ - なぜ bcp は、Boost program_options のこのような大きな依存関係リストを計算するのですか?
boost/program_options
コマンドラインからオプションを処理するために使用する小さなプログラムを書いています。ここで、一般に Boost がインストールされていないシステムにコードを配布したいと考えています。そこで、bcp
ユーティリティを使用しました。program_options チュートリアルexample/first.cpp
から呼び出された Boost の例で試しました。
dest
大量のファイルを含むディレクトリを作成し.hpp
ます.cpp
。これは私が必要としているものであり、それ以上のものではないと思います。ですよね?なぜなら:
37Mは多すぎませんか?たとえば、Python を使用しtest_optparse.py
て 61KB だけで同じことを行うことができます。
私は何か間違ったことをしていますか?ポイントは、私のソース プログラムが 4MB しかないということです。37MBのサードパーティのものを追加できません!!
c++ - boost :: program_options-必須フラグを適用することは可能ですか?
プログラムでboost::program_optionsを使用しています。特定のフラグを必須にしたい。これをそれ自体で強制する方法でprogram_optionsを使用してこれを行うことは可能ですか?つまり、エラーメッセージをスローしますか?
c++ - ブースト プログラム オプションの構成ファイルを出力する方法はありますか
boost::program_options を使用して、構成ファイルからパラメーターを取得しています。
私は手動でファイルを作成でき、プログラムオプションがそれを解析することを理解しています。しかし、プログラムがファイルを自動的に生成する方法を探しています。オプションの名前とその値を出力することを意味します。例えば:
オプションを指定しないと、次のような init.cfg が生成されます
次に、そのファイルに移動し、テキスト エディターを使用して値を変更し、このファイルを使用します。
これにアプローチする良い方法は、variables_map を持つことoperator<<
です。このようにして、ファイルに書き込むことができます。値を変更します。ファイルを読み取ります。すべて同じ形式で、各行を記述する必要はありません。
ドキュメントや例でそのようなものを見つけることができませんでした。これが可能かどうか教えてください
編集: Sam Miller は、セクションで ini ファイルを解析する方法を示しました。ただし、boost::program_options::variables_map vm から値を取得する際にまだ問題があります。私は次のことを試しました
の代わりにit->second.value()
、エラーが発生しました。私も試しit->second
ました。私もエラーが発生しました:
使用すると値が正しく取得されますit->second.as<int>()
が、すべての値が int であるとは限らず、double に達すると、プログラムは次のようにクラッシュします。
python - ブースト::program_optionのような機能を提供するPythonモジュール
Python用のモジュールのようなboost::program_optionsはありますか?
c++ - boost::program_options を使用した LPTSTR* コマンド ライン引数の解析
boost:program_options を使用したコマンド ラインの解析に問題があります。それを説明する最も簡単な方法は、コードを次のように示すことです。
パーサー ctor は const std::vector<charT> を取ることになっています
私のプログラムのtstringは
私が得るエラーは次のとおりです。
どこへ どこへ行くの? あらゆる種類のキャストと再定義を試みましたが、何も機能せず、テザーの終わりにいます。
@Zac を編集:
あなたが提案した変更を行っています... エラーが表示されます:
編集 Visual Studio 2008 VC9 コンパイラを使用していることを指摘するだけです
boost-program-options - boost program_options を使用して、1 つの必須の「モード」オプションに基づいてオプションのセットを選択します。
modeA modeB common と呼ばれる多数のオプション グループがあるとします。{} 内でこれらを参照します。つまり、{common} は、そのグループで説明されている任意のオプションに展開されます。
次のコマンドラインを強制できるようにしたい
モードおよび共通グループからのオプションの位置は重要ではなく、絡み合っている可能性があります
。以下は失敗します
したがって、目的は
- セット A|B のいずれかである必要があるオプション
- 可能であれば、強制的に最初のパラメーターにする
- 上記の必須パラメーターに基づいて、OK として解析されるか無視されるグループ全体
c++ - boost::program_options: 単一の名前と値のペアで ini ファイル内の複数の値を持つオプションを解析する
私が指定する場合
parse_config_file は複数の文字列を作成し、std::vector< std::string>
出力として を生成します。
複数の文字列を 1 行に並べたい。
ip_addresses=サル、ヒヒ
結果は、std::vector< <std::string> >
. 可能であれば、セパレータをどのように表現しますか?
ドキュメントには、ini ファイルで文字列の分離が許可されているかどうかが指定されていません。ただし、コマンド ライン スイッチとして指定すると、多値設定を分離できます。