Could you provide some examples of C++ features that the Rust team has consciously chosen to not support, to try to keep the language more approachable?
Could you show some examples of how you need to work around these deliberate limitations?
Operator overloading. Standard library user-provided allocators. Move constructors. Inheritance. Certain kinds of specialization. SFINAE. Somebody who knows Rust better, and C++, will be able to supply a longer list.
There is a corresponding list of features C++ doesn't have yet, and others it is precluded from having. That programmed move-constructors can fail sucks. Thst moved-from object's still exist sucks.
Providing examples here would be more work than I am prepared for just now. (I am not happy to say so.(
* Standard library user-provided allocators: in nightly, on their way to stable
* Move constructors: not in for technical reasons and performance reasons, not for approachability
* Inheritance: not in for technical reasons combined with a lack of demonstrated need rather than just desire, not for approachability
* Certain kinds of specialization: you're hedging with "certain", but specialization is in nightly, and used in the standard library.
* SFINAE: Rust doesn't use templates, so this as a direct feature doesn't make sense. I'm not aware of any proposal to include something similar in Rust, the team has never said that this wouldn't be in for approachability
> Somebody who knows Rust better, and C++, will be able to supply a longer list.
I don't think your thesis is accurate, so I don't think so. And if this is so obvious, as you claim, then you should be able to provide examples!
Could you show some examples of how you need to work around these deliberate limitations?