Получить указатель на подчиненный 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
что верно, потому что []
Оператор возвращает YAML::Node. Есть ли способ получить указатель на (*foo)["bar"]
чтобы я мог передать что-то вроде
void f(YAML::Node* const blah)
{
(*blah)["banana"] = 1;
}
что полезно, потому что тогда я могу построить дерево с рекурсивными вызовами f
,
1 ответ
Решение
Просто передайте YAML::Node
, а не указатель. YAML::Node
это уже ссылочный тип, так что вы можете передать его как указатель.