// Build don't link: template struct pair { T1 first; T2 second; pair(const T1& a, const T2& b) : first(a), second(b) {} }; struct myint { myint() { } myint(const myint& mi) { } myint& operator=(const myint& mi) { return *this; } }; extern pair a; pair b(a);