C++ doesn't have zero overhead, though. The committee is unwilling to take ABI breaks and so have left performance on the table. For instance, unique_ptr<T> can't be passed in registers but T* can.

Zero overhead is a fiction the committee likes to tell themselves, but it's not true.