- destructor will be called when a variable gets out of scope
- RAII (Resource Acquisition is Initialization)
- smart pointer
- unique_ptr in c++ (how's implementation? is it needed to be implemented inside of runtime?)
shared, weak pointer example
weak_ptr wp; f () : void = shared_ptr p = ... wp = p ... # here p will be destructed when f gets out because of scope wp.lock() # check validity somewhere else
but, FP-like algebraic data type transformation cannot be achieved within this limitted way ? like, creating object (i.e. allocate memory) inside of function and return it? not really, because such an object anyway will be destructed when the variable referencing it gets out of scope.
- find example where memory leaks
- of course, it happens if several initialized (heap-allocated) objects are assigned to single variable.
- but that's not SSA (static single assignment) style programming. I want to find other example.