Laeeth.
Thanks for the reply. Yes, this concerns my HDF5 wrapper
project; the main concern is not that the memory consumption of
course, but rather explicitly controlling lifetimes of the
objects (especially objects like files -- so you are can be
sure there are no zombie handles floating around).
An easy way is to just use scope(exit) to either close the HDF5
object directly, or indirectly call destroy on the wrapper. If
you want to make it 'idiot proof', maybe ref counting structs
will get you there (at possible cost of small overhead). I
personally don't tend to forget to close a file or dataset; its
much easier up forget to close a data type or data space
descriptor.
But struct vs class depends somewhat on how you want to represent
the object hierarchy in D, no ?
Incidentally there are some nice things one can do using compile
time code to map D structs to HDF5 types (I have implemented a
simple version of this in my wrapper). A bit more work the other
way around if you don't know what's in the file beforehand.