Looks like Microsoft has changed its implementation of two phase lookup, and the forward references in the print_node function are now flagged as errors. If you have this problem, you can change the Conformance flag from /permissive- to /permissive (in the UI, under properties -> c/c++ -> language -> Conformance mode = No). Setting the /permissive flag will probably cause other template issues.