Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

RAII only helps with 1 of 4 primary cases of safety. RAII deals (badly) with temporal safety, but not spacial safety (bounds errors etc), safe initialization (use before initialization), or undefined behavior (overflow/underflow, aliasing, etc).


Use-after-free (or reference/iterator invalidation in general) is the main issue. RAII doesn't help there at all. RAII helps with deterministically cleaning up resources, which is important, but barely related to safety.


How does RAII not help with safe initialization? It's right in the name.


>RAII deals (badly) with temporal safety

>safe initialization (use before initialization)

These two are solved by proper use of RAII.

But you have a point with UB. That's always been an issue, though, it's part of the idiosyncrasies of C/C++; all languages have their equivalent of UB.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: