获取指向下属的指针 YAML::Node

Get a pointer to a subordinate YAML::Node

我正在编写一个配置文件库,我想要一个指向子节点的指针以传递给需要 YAML::Node* 的函数,例如用于构建 YAML 文档。

我可以创建一个新节点并轻松获得指针:

YAML::Node* foo = new YAML::Node(); // Null node

而且我可以很容易地添加一个新的子节点:

(*foo)["bar"] = baz; 

但是,我不知道如何获得指向 (*foo)["bar"] 的指针。如果我尝试

&((*foo)["bar"]);

我得到 error: taking address of temporary,这是真的,因为 [] 运算符 returns 一个 YAML::Node。有没有办法获得指向 (*foo)["bar"] 的指针,以便我可以将其传递给

之类的东西
void f(YAML::Node* const blah) 
{
    (*blah)["banana"] = 1;
}

这很有用,因为这样我就可以通过递归调用 f.

来构建树

只传递一个YAML::Node,不是指针。 YAML::Node已经是引用类型,所以可以像指针一样传递。