You can't. Classes are reference types. This just doesn't make sense: x2 = x_; does not create any new objects.
*object_alive* is what I mentioned, not object_create therefore it does "make sense" ... so here it is again: auto x_ = new X() , // created:1 , alive: 1 x2 = x_ ; // created:1 , alive: 2I tried (in all of my D innocence) to implement simple but effective counter from C++ side of the "wall" ... using the CRTP idiom ...