問題タブ [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 複数のトークンを含む設定ファイル オプション
コマンドラインからできるように、構成ファイルのマルチトークンオプションから読み取ることができないようです。設定ファイルの構文は何ですか?
オプションの説明は次のように追加されます。
その後、コマンドと構成ファイルを解析します。
コマンドラインで「--coordinate 1 2」が機能します。ただし、設定ファイルで試してみると:
また
invalid_option_value 例外が発生して失敗します。マルチトークンオプションの場合、構成ファイルの構文は正確には何ですか?
c++ - c ++:プログラム設定-boost.PropertyTreeまたはboost.program_options?
プログラムの設定やオプション、構成をC++で保存するためのソリューションを探していました。これらは、GUIで公開され、コードの実行の間に保存する必要がある設定である可能性があります。
私の検索で、私はboost.PropertyTreeに出くわしました。これは良い選択のようでした。私はブーストが尊敬されているコードであることを知っているので、それを快適に使用できるので、これを使用して開発を始めました。次に、 boost.program_optionsに出くわします。これにより、同じことができるように見えますが、プログラム設定の特定のユースケースに特化しているようにも見えます。
今、私はその仕事に最も適切なのはどれか疑問に思っていますか?(または両方よりも優れている3番目のオプションがあります)
編集: fyiこれはプラグイン用であるため、コマンドラインオプションを使用しません(のように、それは不可能です)。
アップデート
私はboost.PropertyTreeに固執することになりました。変更したオプションをINIに保存できるようにする必要がありましたが、boost.program_optionsを使用してそれを行う方法がわかりませんでした。
c++ - boost::program_options::positional_options_description 終了
次のプログラムは で中断しpointer being freed was not allocated
ます:
OS X 10.6.7 の /usr/local にビルドした Boost 1.46.1 でプログラムをコンパイルしてリンクしました。私が(おそらく)リンクしているもの以外に、インストールされている libboost_program_options が見つかりません。
このクラッシュの原因は何ですか?
編集:スタックトレースに関しては、プログラム
として構築された
./sandbox として実行すると出力が生成されます
Boostの構築に関して:
そして、これが私の ~/user-config.jam です:
c++ - 文字列/ブースト::任意のマップからブースト::オプションを構築する
構成を表すマップがあります。std::string
との地図ですboost::any
。
このマップは最初に初期化されます。ユーザーがコマンドラインでこれらのオプションをオーバーライドできるようにしたいと思います。
私がやりたいのは、このoptions_description::add_option()
メソッドを使用してこのマップからプログラムオプションを作成することです。ただし、テンプレート引数を取りますが、po::value<>
私が持っているのは。だけですboost::any
。
これまでのところ、私はコードのシェルを持っています。 m_Config
構成クラスを表し、をgetTuples()
返しますstd::map<std::string, Tuple>
。 TuplePair
はのtypedefでstd::pair<std::string, Tuple>
あり、タプルにはboost::any
私が興味を持っているものが含まれています。
この方法でそれを構築する方法はありますか、それとも自分でそれを行うことに頼る必要がありますか?
前もって感謝します!
c++ - Boost プログラム オプションでエラー メッセージを改善する方法
以下のコードでは、プログラム オプションを使用して、コマンドラインまたはファイルからパラメーターを読み取りました。さらに、ConfigProxy::setConfigを使用して実行時にプログラムでオプションを設定できます。
ConfigProxy を介して、オプション値が取得されます
ただし、ユーザーが指定した「圧縮」オプションの値が間違ったタイプの場合、たとえば
その後、例外がスローされます
例外は、型キャストの問題を明確に示しています。しかし、このメッセージは、ユーザーがどのオプションがエラーの原因であるかを見つけるのにあまり役に立たないようです。
bad_any_cast例外をスローする代わりに、このタイプのエラーについてユーザーに通知するより良い方法はありますか?
- - - 編集 - - - - - - - - - - - - -
Luc Danton と Tony のおかげで、プログラム オプションがどのようにエラーを表示するかがわかりました。
ロジックを実装することで、bad_any_cast 例外を取り除くことができると思います。
c++ - Boost::Program_Options アクセス違反によるハンドルされない例外
DEBUG モードでは正常に動作するプログラムがありますが、RELEASE モードでは、アクセス違反が原因で未処理の例外が発生します。nullポインターが原因ではないことは確かです。コールスタックは次のとおりです。
コード:
例外は次のとおりです。
c++ - プログラムオプション値(iniファイル)でハッシュマークを使用する
ブーストプログラムオプションを使用してiniファイルから読み取るのに問題があります。問題は、ハッシュマークを含むキーです(簡単な例)。
[セクション]
key= "xxx#yyy"
キーを取得すると、「xxx」が返されます。これは、ハッシュマークがコメントの先頭として解釈されているように見えるため、行の残りの部分がスキップされるためです。残念ながら、値は正規表現であるため、「#」を他の文字に置き換えることはできません。ハッシュマークを引用する方法が見つかりませんでした。正規表現が変更されてさらに読みにくくなるため、引用しない方がよいでしょう。
iniファイルパーサーを書き直さずにこの問題に対処する方法はありますか?助けてくれてありがとう。
キーを取得するための私のコードは次のようになります。
c++ - boost::program_options で `--option=arg` 引数スタイルのみを許可する
boost::program_options を使用して、引数のスタイルのみを許可し、引数がオプションの場合にあいまいになることがある--option=arg
スペース区切りを禁止したいと思います。--option arg
可能なように見えます。cmdline.hppソース (ドキュメントが見つかりません) を見て、 andのみallow_long
を含む制限付きのオプション スタイルを使用しようとしました。long_allow_adjacent
long_allow_next
残念ながら--option arg
、このパーサーではまだ受け入れられています...
もしかしてバグ?(libboost_program_options-1_46.so.1.46.1)
c++ - Boost :: Program_Optionsでコマンドライン構文「-DEVICE:iphone」をサポートするにはどうすればよいですか?
Boost::Program_Optionsのデフォルトの構文は「--DEVICEiphone」です。構文「-DEVICE:iphone」または「-DEVICE = iphone」をサポートするにはどうすればよいですか?
c++ - Boost :: Program_Optionsで、wstringのデフォルト値を設定するにはどうすればよいですか?
以下の私のコードは機能しませんでした:
コンパイルはエラーで失敗しました:
d:\ repo \ a4x_ext \ minidxdriver \ testapp \ configparser \ boost \ lexical_cast.hpp(1096):エラーC2039::はの
'setg'
メンバーではありません'boost::detail::lexical_stream_limited_src<CharT,Base,Traits>'