// Build don't run: // Special g++ Options: -g template <class P1> struct S1 { struct SS1 { }; friend void Foo (const SS1& ss1) { } }; template <class P1> void Foo(const S1<P1>& s1) { typedef typename S1<P1>::SS1 TYPE; TYPE t; Foo(t); } int main () { S1<double> obj; Foo(obj); }