Node is not a pointable thing. It is explicitely shared. I could have passed it const Node &, but it is slightly painful to do Node modifiableNode = node;