http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54665
Bug #: 54665 Summary: [C++11] template alias to template does not work Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: mw_tr...@users.sourceforge.net Template aliases, as described in N2258[1], are not fully implemented. Specifically, they do not work if the type being aliased is itself a template. Simple test case (taken from Wikipedia[2]): template <typename First, typename Second, int Third> class SomeType; class OtherType; template <typename Second> using TypedefName = typename SomeType<OtherType, Second, 5>; int main() { return 0; } This fails to compile with the error: $ gcc -std=c++11 template-alias.cpp template-alias.cpp:6:30: error: expected nested-name-specifier [1] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf [2] http://en.wikipedia.org/wiki/C++11#Alias_templates