ini_parserを 使う前に 言っておきたい 事がある

基本的には、こんなコードで読み込みができます

サンプル

sample.ini
[常識]
CLANNAD = 人生
AIR = 青春
に対するcpp
#include <boost/property_tree/ini_parser.hpp>
using namespace boost;
int main(){
 property_tree::ptree pt;
 property_tree::read_ini("sample.ini", pt);

 if (optional<std::string> value = pt.get_optional<std::string>("常識.CLANNAD")) {
  std::cout << "CLANNADは " << value.get() << std::endl;
 dt.xmlList.push_back(bcl::widen(value.get()));
 }else {}
 if (optional<std::string> value = pt.get_optional<std::string>("常識.AIR")) {
  std::cout << "AIRは " << value.get() << std::endl;
 dt.xmlList.push_back(bcl::widen(value.get()));
 }else {}
}

注意点など

  • ファイル名はstd::string
    • ちょこっと手を加えればなんとかなるかなと思ったけどptree周りがほとんどstringベタ書きだったのでbasic_string置換作戦は時間がかかりそうですね
  • 同じセクション名あるとread_iniで例外とびます
    • まあこのへんはマニュアル読んでとしか
  • (ptreeだと)大文字、小文字は区別します
    • itreeを使いましょう(コメント参照。egtraさんありがとうございます)