template struct iterator { void Compare(const iterator &x) { return; } friend void Check(iterator) { return; } }; template struct Box { iterator I; void test() { Check(I); I.Compare(I); } }; // Force instantiation of Box Box<> B;