Rust was originally garbage collected. From Graydon Hoare's post, he didn't want explicit lifetimes originally either. He agreed because he thought they would always be inferred by the compiler.
https://graydon2.dreamwidth.org/307291.html
It seems to me that Rust evolved into a better C++, but it did not start out that way.