13

プログラムの設定やオプション、構成をC++で保存するためのソリューションを探していました。これらは、GUIで公開され、コードの実行の間に保存する必要がある設定である可能性があります。

私の検索で、私はboost.PropertyTreeに出くわしました。これは良い選択のようでした。私はブーストが尊敬されているコードであることを知っているので、それを快適に使用できるので、これを使用して開発を始めました。次に、 boost.program_optionsに出くわします。これにより、同じことができるように見えますが、プログラム設定の特定のユースケースに特化しているようにも見えます。

今、私はその仕事に最も適切なのはどれか疑問に思っていますか?(または両方よりも優れている3番目のオプションがあります)

編集: fyiこれはプラグイン用であるため、コマンドラインオプションを使用しません(のように、それは不可能です)。

アップデート

私はboost.PropertyTreeに固執することになりました。変更したオプションをINIに保存できるようにする必要がありましたが、boost.program_optionsを使用してそれを行う方法がわかりませんでした。

4

3 に答える 3

10

を使用しboost::program_optionsます。それはまさにそれが何のためであるかです。1つのライブラリには、コマンドラインオプション、環境変数オプション、およびINIのような構成ファイルパーサーがあります。そして、それらはすべて正しい方法で統合されているため、ユーザーがこれらのソースの複数で同じオプションを指定すると、ライブラリは考慮すべき正しい優先順位を認識します。

boost::property_tree一方、より一般化されたライブラリです。ライブラリは、テキストストリームを解析して統一されたデータモデルにします。ただし、実際の解析を行う必要があります。つまり、ニーズに合わせてデータのブロブを理解する必要があります。ライブラリは、特定のオプション文字列を検出したときにパラメータを予期するタイミング、または特定のオプションの特定の値または値のタイプを禁止するタイミングを認識していません。

于 2011-05-10T00:08:45.007 に答える
6

After some digging around I think boost.PropertyTree is still the best solution because it gives me the capability to save the options after changing them from within the program which is a requirement.

于 2011-05-12T00:37:29.993 に答える
1

非ブーストの可能性もあります。Config4Cppは、私が作成した、堅牢で使いやすく、包括的に文書化された構成ファイルパーサーライブラリです。www.config4star.orgで入手できます。

I suggest you read Chapter 3 (Preferences for a GUI Application) of the Practical Usage Guide manual to read an overview of how Config4Cpp can do what you want. Then open the Getting Started Guide manual, and skim-read Chapters 2 and 3, and Section 7.4 (you might prefer to read the PDF version of that manual). Doing that should give you sufficient details to help you decide if Config4Cpp suits your needs better or worse than Boost.

By the way, the indicated chapters and sections of documentation are short, so they shouldn't take long to read.

于 2011-05-11T16:16:05.080 に答える