A programming language is not just a grammar and semantics.
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.
Cargo is great, but C++ also has conan and vcpkg, eventually a standard one will emerge.
http://www.klabbers.nl/c/dependency-management-for-c/
Also I do have an issue with Cargo's lack of support for binary libraries.
ADTs, while not as good as in ML languages, at least there is std::variant.
I kind of mentioned explicit unsafe when I refereed to the safety enforced at language level instead of conventions and sanitizers.
Pattern matching is a great feature across all ML based languages, there were already some attempts to add it to the C++ as well.
http://open-std.org/JTC1/SC22/WG21/docs/papers/2016/p0095r1....
https://www.youtube.com/watch?v=HaZ1UQXnuC8