https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66596
Bug ID: 66596 Summary: Type that is not dependent on the variable template template parameters Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: pau.montequi at gmail dot com Target Milestone: --- The bug appears to be that where the non-specialized variable template has a type that is not dependent on the variable template template parameters, gcc assumes within template methods that use that variable template that the variable template always has that type. struct U { void f() {} }; struct V { void f() {} }; template<class T> U t; template<> V t<int>; template<class T> void g() { t<T>.f(); } int main() { g<int>(); } SO thread: http://stackoverflow.com/a/30910509/499359