1 #include <cstdio> 2 3 struct base_t { 4 virtual void f(); 5 }; 6 7 void do_f(base_t *ptr); 8 9 struct derived_t : base_t { 10 void f() override; 11 }; 12 f()13void derived_t::f() { 14 puts("derived_t::f"); 15 } 16 17 static struct dummy { 18 base_t *ptr = nullptr; 19 ~dummydummy20 ~dummy() { 21 if (ptr) 22 do_f(ptr); 23 } 24 } __dummy; 25 create()26extern "C" void create() { 27 puts("create"); 28 __dummy.ptr = new derived_t(); 29 } 30