1// Build don't link: 2// Special g++ Options: -O 3 4class foo { 5public: 6 operator const char*() const { return a; } 7 char *a; 8}; 9 10class bar { 11public: 12 ~bar(); 13 void operator++(int); 14 bool b() const; 15protected: 16 void* c() const; 17}; 18 19class baz : public bar { 20public: 21 foo const &d() const { return *(foo *)bar::c(); } 22}; 23 24extern int tst (const char *, const char *) throw(); 25 26void die(const foo& x) 27{ 28 for (baz hi; hi.b(); hi++) 29 if (tst (hi.d(), x) == 0) 30 return; 31} 32