ブーツの property_tree ライブラリを使用しています。オブジェクトから子ノードを取得する方法を探していますが、失敗した場合ptree
は空を返します。ptree
property_tree/examples/empty_ptree_trick.cpp で素敵な例を見つけました:
void process_settings(const std::string &filename)
{
ptree pt;
read_info(filename, pt);
const ptree &settings = pt.get_child("settings", empty_ptree<ptree>());
std::cout << "\n Processing " << filename << std::endl;
std::cout << " Setting 1 is " << settings.get("setting1", 0) << std::endl;
std::cout << " Setting 2 is " << settings.get("setting2", 0.0) << std::endl;
std::cout << " Setting 3 is " << settings.get("setting3", "default") << std::endl;
}
これはまさに私が必要とすることを行います。empty_ptree()
問題は、関数が のメンバーではないとコンパイラが不平を言うことですboost:property_tree
。どこにアイデアはempty_ptree()
ありますか?
VS2010 でブースト 1.44 を使用しています。