* There will be not more than 1 reference to the object at any time.
* The object will be deleted once the reference dies.
That's a zero-overhead GC that is enforced at compile time.
And that is the main appeal of C++. You can get close-to-optimal instruction-level behavior while still describing things at reasonably high levels of abstraction. Yes, it has a hell of a learning curve, but once you master it, you can beat any other language out there.