1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
template <typename T> class X { }; template <typename T> void f(T t) { } struct {} unnamed_obj; void f() { struct A { }; enum { e1 }; typedef struct {} B; B b; X<A> x1; X<A*> x2; X<B> x3; f(e1); f(unnamed_obj); f(b); (void)x1; (void)x2; (void)x3; }