// Copyright (C) 2002 Free Software Foundation // Origin: C++/1058 // Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net> // { dg-do compile } struct A { typedef int Y; typedef double Z; }; struct B { template<typename T> void func(typename T::Y, typename T::Z) { } }; template<typename T> struct X { void gunc(); }; template<typename T> void X<T>::gunc() { B b; b.func<A>(0, 3.); } int main() { X<int> x; x.gunc(); return 0; }