Remix.run Logo
adgjlsfhk1 10 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 10 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 10 months ago | parent | prev | next [-]

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

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