Managing lent resources
A lent resource is conceptually any reference to memory that you do not own and is not garbage collected. D does not have ownership or borrowed concepts in its type system, but there are techniques that we can use to make our job a little easier.
How to do it…
In order to manage lent resources, perform the following steps:
Use the garbage collector whenever possible. Avoid garbage collector allocations in your application's hotspots, but take advantage of its convenience and general correctness throughout the rest of your application.
When writing functions, mark references you intend not to store with the
scope
storage class.If you do intend to store a reference, accept immutable data, if possible.
Make private copies of mutable data you intend to store.
It may be useful to write reference-counted objects.
Implement a code review policy to ensure other resources are managed correctly.
How it works…
The scope
storage class is not fully implemented at the time of writing this...