2009-11-10 42 views
1

我有一個架構,它使用訪問者模式來實現一些通過樹(AST發生)。在其中一個通行證中,我需要將一些數據與一個節點(nodeX)關聯,然後從某個點下面的數據中獲取我的數據,從nodeX的引用中獲取數據。我想以一種不會將訪問者/通行證的實現推入樹節點的方式來執行此操作。如何在訪問者模式的節點上存儲狀態?

有沒有一些乾淨的方式來做到這一點?

思路:

  • void*每個節點上(醜,不是類型安全)
  • hash_map<Node,Data>(不乾淨,因爲我想,誰擁有它?)

回答

1

hash_map聽起來像是我最好的方式。訪問者將擁有它。