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

时间:2015-07-15 19:09:53

标签: c++ yaml-cpp

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

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

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

我可以轻松添加一个新的子节点:

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

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

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

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

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

这很有用,因为那时我可以建立一个对f进行递归调用的树。

1 个答案:

答案 0 :(得分:2)

只传递YAML::Node,而不是指针。 YAML::Node已经是引用类型,因此您可以像指针一样传递它。