
Gordon Woodhull wrote:
I just have to share this little insight: finally, a concise definition.
A metagraph is a system of objects where the types of the objects (classes) and the relations between them (e.g. pointers, mappings, containers) can be described in a graph called a pattern. In the C++ implementation, the patterns are metadata, which allows static typing and static polymorphism and moves the abstraction penalty to compile time (when the pattern is known at coding time).
I don't know if this is related to what you have in mind, but the Scrap your Boilerplate approach [1] allows to traverse any recursive data structure, given each type is a valid Fusion sequence (i.e. anything tuple-like). It assumes a tree, but the structure could actually perfectly be a graph. [1] http://spirit.sourceforge.net/dl_docs/traversal/html/index.html