获取指向下属的指针 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
已经是引用类型,所以可以像指针一样传递。
我正在编写一个配置文件库,我想要一个指向子节点的指针以传递给需要 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
已经是引用类型,所以可以像指针一样传递。