This is part of the "NodeType* -> NodeRef" migration. Notice that since
GraphWriter prints object address as identity, I added a static_assert on
NodeRef to be a pointer type.
Details
Diff Detail
Event Timeline
what's the printer used for? Would it be best to generalize it (perhaps adding another extension point to the graph traits, so NodeRefs can be printed out - with a default implementation for pointers)?
One usage is to print dot files.
I think it's more like that GraphWriter that requires the input nodes to be both fulfilling GraphTraits, and printable, not that GraphTraits has an optional printable requirement - these are two totally orthogonal traits.
Thanks for the explanation - I think that makes sense, that node printability is an orthogonal concept from the graph traits, hopefully. (the counterexample to this would be if two graphs have the same noderef type but need different printing schemes, but I thin kthat'd only come up if there was a concept of a "graph" distinct from nodes in the graph traits machinery (ie: if you didn't need fat pointers because you already had access to the graph... anyway))