Boost.Program_optionsを使用して構成オプションを保存および管理するアプリケーションがあります。現在、構成ファイルから移動し、代わりにデータベースにロードされた構成を使用しています。ホスト名とインスタンス名でデータベースから構成オプションを読み取るAPIを作成しました。(かっこいい!)しかし、私が見る限り、これらのオプションをブーストProgram_optionsに手動で挿入する方法はありません。誰かがこれを以前に使用したことがありますか、何かアイデアはありますか?boostのドキュメントは、そのマップにあるものを取得する唯一の方法が、コマンドラインまたは構成ファイル(私が望むものではない)から読み取るstore関数によるものであることを示しているようです。基本的に、DB読み取り値をマップに手動で挿入する方法を探しています。
3142 次
2 に答える
17
私の答えは少し遅すぎますが、私は似たようなことをしようとしてしばらく時間を費やし、厄介な明白な解決策を見つけました(他の誰かがこれを探している場合に備えて)...
boost::program_options::variables_map
から派生したことを思い出してstd::map<std::string, boost::program_options::variable_value>
、挿入を含む完全に合法的なSTLマップ処理を行うことができます...
名前空間po=boost :: program_options; po :: variables_map vm; vm.insert(std :: make_pair( "MyNewEmptyOption"、po :: variable_value()); vm.insert(std :: make_pair( "MyNewIntOption"、po :: variable_value(32、false)); po :: notify(vm);
-エドモンド-
于 2010-04-22T11:11:14.577 に答える
3
extra_parser
またはallow_unregistered
の機能を見たことがありBoost::Program_Options
ますか?プログラムがどのように動作するかに応じて、どちらかまたは両方が必要なものをサポートできる必要があります。
于 2009-05-11T13:41:08.530 に答える