this allows for scope-based heap allocations. There is one limitation. You cannot use the return keyword inside the following block. This trick uses dark macro magic :)