Easy-to-use HDF5 C++ templates for Serial and Parallel HDF5#

The Hierarchical Data Format, prevalent in high performance scientific computing, sits directly on top of sequential or parallel file systems, providing block and stream operations on standardized or custom binary/text objects. Popular scientific computing platforms such as Python, R, Matlab, Fortran, Julia [and many more...] come with the necessary libraries to read and write HDF5 datasets. The present effort simplifies the interaction with popular linear algebra libraries, provides compiler assisted seamless object persistence, Standard Template Library support, and comes equipped with a novel error handling architecture.

H5CPP is a novel approach to persistence in the field of machine learning, it provides high performance sequential and block access to HDF5 containers through modern C++.

All H5CPP file and dataset IO descriptors implement the raii idiom and close underlying resource when going out of scope. They can be passed seamlessly to HDF5 CAPI calls when implicit conversion is enabled. Similarly, templates can take CAPI hid_t identifiers as arguments where applicable, provided the chosen conversion policy allows it. See conversion policy for details.

The system supports CRUD like IO operators: h5::create, h5::read, h5::write,h5::append