extern struct Y { int n; float f; } y1; enum E { e1 }; struct X { int n; } x1; template<typename T> struct F { int n; friend bool operator==(const F &a, const F &b) { return a.n == b.n; } }; int f() { return y1.n + e1 + y1.f + x1.n; }