3 ms·
> "stack variables that go out of scope are deallocated" That's all it is. But, it guarantees that a given piece of code (an object's destructor) is always ex
by thought_alarm 13y ago
> "stack variables that go out of scope are deallocated"
That's all it is.
But, it guarantees that a given piece of code (an object's destructor) is always executed when execution leaves the current scope, either through normal execution, by calling `return`, or by throwing an exception.
In fact, RAII is the thing that allows exceptions to be remotely usable in C++; the lack of RAII in Obj-C is the reason why exceptions are not common in Obj-C.
It's used for regular memory management, but it's also used for managing access to other resources, such as files, mutexes, etc. E.g., you can use it ensure that a file handle is automatically closed when you leave scope.