I have an architecture that uses the visitor pattern to implement a number of passes over a tree (an AST as it happens). In one of the passes I need to associate some data with a node (nodeX
) and then from some point below it get my data from a reference to the nodeX
. I want to do this in a way that doesn't push the implementation of the visitor/pass into the tree nodes.
Is there some neat way to make that work?
Ideas:
void*
on each node (ugly, not type safe)hash_map<Node,Data>
(not as clean as I'd like, and who owns it?)