template class X { }; template void f(T t) { } struct {} unnamed_obj; void f() { struct A { }; enum { e1 }; typedef struct {} B; B b; X x1; X x2; X x3; f(e1); f(unnamed_obj); f(b); (void)x1; (void)x2; (void)x3; }