У меня есть архитектура, которая использует шаблон посетителя для реализации нескольких проходов по дереву (AST, как это происходит). В одном из проходов мне нужно связать некоторые данные с узлом (nodeX
), а затем из некоторого пункта ниже он получить мои данные из ссылки на nodeX
. Я хочу сделать это способом, который не подталкивает реализацию посетителя / прохода к узлам дерева.
Есть ли какой-нибудь аккуратный способ заставить это работать?
Идеи:
void*
на каждом узле (некрасиво, небезопасно)
hash_map<Node,Data>
(не так чисто, как хотелось бы, и кому он принадлежит?)