如何在访问者模式的节点上存储状态?

时间:2009-11-10 22:47:58

标签: c++ visitor

我有一个架构,它使用访问者模式在树上实现多个传递(AST发生时)。在其中一个传递中,我需要将一些数据与一个节点(nodeX)相关联,然后从下面的某个点获取我的数据来自对nodeX的引用。我想以一种不会将访问者/传递的实现推送到树节点的方式来做到这一点。

是否有一些巧妙的方法可以让它发挥作用?

思路:

  • void*在每个节点上(丑陋,不是类型安全)
  • hash_map<Node,Data>(不像我想的那么干净,谁拥有它?)

1 个答案:

答案 0 :(得分:1)

hash_map听起来对我来说是最好的方式。访客将拥有它。