Получить указатель на подчиненный 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 это уже ссылочный тип, так что вы можете передать его как указатель.

Другие вопросы по тегам