http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49153
--- Comment #3 from dizzy at roedu dot net 2011-05-25 16:53:52 UTC --- Indeed it seems a problem with the code because of the semantics of the injected class names. Namely that a nested (in MetaBind1st) struct "type" is defined which incidentally inherits a nested typedef "type". The injected class name of the struct ("type") will hide the inherited nested typedef ("type") and thus when trying to locate it with "AppenderTypeList<Test>::Function<NullType>::type" it will find the injected class name of the "type" struct instead of the nested inherited typedef. Sorry for the spam.