Conversation

I find that it can be very difficult to track down memory corruption in C++ in general. It's usually far easier for C code since there's a lot less magic and abstraction. Modern C++ is a paradise for latent use-after-free bugs. I'm really not convinced that it improves safety.
4
11
Depends a lot on what kind of code you're writing. I think it's hard enough to avoid memory safety bugs in C. I don't think modern C++ actually succeeds at providing safety beyond avoiding memory leaks and that comes at the cost of implicit use-after-free bugs.
2
1
Main issue is that it's so ridiculously complex and I do not have a deep understanding of the language despite knowing so much about it. Being in the 95th percentile of knowledge about C++ among C++ programmers still means you have no clue how the language works.
1
2
C++ is a terrible language for building sophisticated abstractions. Lack of proper generics and all the complexity, subtle rules, etc. combined with the culture of layering abstraction upon abstraction doesn't play out well. It's ridiculously painful having to debug bugs we find.
1
2
The abstractions are inherently super lossy, exposing tons of implementation details and weird subtleties. There's so much that can go wrong. It's not like doing it in a language with actual generics and memory / type safety where you can make a proper API handling edge cases.
1
2
Show replies