------- Comment #3 from uwe at netbsd dot org 2010-02-22 04:08 ------- (In reply to comment #2) > This is not a bug. Because the base class of Node::OpNode does not > depend on template arguments, the members of the base class are > visible in Node::OpNode::f(). On the other hand, since the base > class of Node::FooOpNode depends on template arguments, the members > of the base class are not visible during parsing and before template > arguments are substituted.
But doesn't this error happens during instantiation as the error message indicates? If definition of Node::FooNode is commented out, the templates themselves are accepted. Also, if the nested classes are un-nested out of Node, the code compiles w/out errors too. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43135