Features
Header-only C++17 template library.
High-level front-end to the C API of the HDF5 library.
Type support:
all numeric types:
(u)int#_t
,float
,double
,long double
.std::complex<>
with any of the types above.CUDA-style POD-structs with
x,y
orx,y,z
members as atomic type, such asfloat3
ordouble2
. These work with any of the types above. Inh5pp
these go by the nameScalar2<>
andScalar3<>
.Contiguous containers with a
.data()
member, such asstd::vector<>
.Raw C-style arrays or pointer to buffer + dimensions.
Eigen types such as
Eigen::Matrix<>
,Eigen::Array<>
andEigen::Tensor<>
, with automatic conversion to/from row-major storageText types
std::string
,char
arrays, andstd::vector<std::string>
.Structs as HDF5 Compound types (example)
Structs as HDF5 Tables (with user-defined compound HDF5 types for entries)
Ragged “variable-length” data in HDF5 Table columns using
h5pp::varr_t<>
andh5pp::vstr_t
.
Modern CMake installation of
h5pp
and (opt-in) installation of dependencies.Multi-platform: Linux, Windows, OSX. (Developed under Linux).