cout << "  new IFoo@" << STATIC_CAST(void*, this) << " [#" << total_constructions_ << "]" << endl;
printf("  new IFoo@%p [#%d]\n", STATIC_CAST(void*, this), total_constructions_);
IFoo::IFoo()    : refcount_(0)  {    ++total_constructions_;    cout << "  new IFoo@" << STATIC_CAST(void*, this) << " [#" << total_constructions_ << "]" << endl;  }