Remix.run Logo
adgjlsfhk1 8 months ago

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).

badmintonbaseba 7 months ago | parent | next [-]

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.

AnimalMuppet 8 months ago | parent | prev | next [-]

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

moralestapia 8 months ago | parent | prev [-]

>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.