有没有一种简单的方法可以在不迭代的情况下使用 YAML-cpp 获取地图中的密钥?我在说明中看到我可以使用first()
YAML-cpp 迭代器类的方法,但我不需要实际迭代。我有一个可以通过缩进级别识别的键,但是如果该键不是已知列表之一,我现在需要做的是抛出异常。我的代码目前如下所示:
std::string key;
if (doc.FindValue("goodKey")
{
// do stuff
key = "goodKey";
} else if (doc.FindValue("alsoGoodKey") {
// do stuff
key = "alsoGoodKey";
} else throw (std::runtime_error("unrecognized key");
// made it this far, now let's continue parsing
doc[key]["otherThing"] >> otherThingVar;
// etc.
看,我需要密钥字符串才能继续解析,因为 otherThing 在 YAML 文件中的 goodKey 下。这很好用,但我想告诉用户无法识别的密钥是什么。不过,我不知道如何访问它。我在头文件中看不到任何赋予我该值的函数。我如何得到它?