(Reason why: More C++ features add new, increasingly-less-obvious, ways to get use after free. In particular lambdas practically invite it, but there are lots of other such features.)
new features add some risks, sure, but new safety benefits massively outweigh those in my experience.
iow i'd bet real-world c++ code has gotten a lot safer, even if the language has more risks in it if you just count them.
I don’t really agree. Most of the new “safety” features (RAII, in particular) are of the form “protects against memory leaks”, which aren’t really safety features in the form of memory safety as memory leaks are safe.
I disagree, RAII does prevent some safety problems (clear model for deallocation, of the object and its properties). and std::unique_ptr etc. help with some others.
See, I think deallocation is the weakest point of RAII—it’s not at all obvious where it happens, especially with temporaries. That causes trouble. Whereas with C “free” is right there in the code.