Как сохранить состояние на узле для шаблона посетителя? - PullRequest
1 голос
/ 11 ноября 2009

У меня есть архитектура, которая использует шаблон посетителя для реализации нескольких проходов по дереву (AST, как это происходит). В одном из проходов мне нужно связать некоторые данные с узлом (nodeX), а затем из некоторого пункта ниже он получить мои данные из ссылки на nodeX. Я хочу сделать это способом, который не подталкивает реализацию посетителя / прохода к узлам дерева.

Есть ли какой-нибудь аккуратный способ заставить это работать?

Идеи:

  • void* на каждом узле (некрасиво, небезопасно)
  • hash_map<Node,Data> (не так чисто, как хотелось бы, и кому он принадлежит?)

1 Ответ

1 голос
/ 11 ноября 2009

hash_map звучит как лучший способ для меня. Посетитель будет владельцем.

...