HDF5 C++ template library