Yes. C++ has all of this in a crippled form. But it doesn't mean that C++ in on par with Rust.
One of the things Rust should focus on as productivity improvement is making that migration as easy as possible.
Right now I cannot justify from business perspective replacing C++ with Rust on the workflows we still use C++ for.
But it doesn't mean that C++ as good as Rust. It's just wrong.
The whole eco-system and community around a language is what defines it.
To give a more explicit example, until it reaches parity with C++ on .NET/UWP tooling, it just means less productivity in spite of being a technically better and safer language.