ユースケースは、YAMLで記述された構成ファイルをステップスルーすることです。各キーをチェックし、それに応じてその値を解析する必要があります。のようなランダムアクセス方法を使用するというアイデアは好きdoc["key"] >> value
ですが、実際に行う必要があるのは、たとえばキーのスペルを間違えた場合に備えて、構成ファイル内の認識されないキーについてユーザーに警告することです。ファイルを反復処理せずにそれを行う方法がわかりません。
私はこれを使用してこれを行うことができることを知っていYAML::Iterator
ます
for (YAML::Iterator it=doc.begin(); it<doc.end(); ++it)
{
std::string key;
it.first() >> key;
if (key=="parameter") { /* do stuff, possibly iterating over nested keys */ }
} else if (/* */) {
} else {
std::cerr << "Warning: bad parameter" << std::endl;
}
}
しかし、これを行うためのより簡単な方法はありますか?私のやり方は、YAML-cppに組み込まれているエラーチェックを完全に回避しているようであり、キーにランダムにアクセスするという単純さをすべて取り消すようです。