// Origin PR c++/51191 // { dg-do compile { target c++11 } } template< class T > class ClassTemplate {}; template< class T > struct Metafunction { typedef T type; }; template< class T > using TemplateAlias = ClassTemplate< typename Metafunction::type >; using Alias = TemplateAlias; template< class T > void f( TemplateAlias ); int main() { Alias x; f( x ); // { dg-error "no matching function for call to|f" } }