1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
// 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); }