27#ifndef LIBH5_FORMAT_HPP
28#define LIBH5_FORMAT_HPP
52 static std::string invoke() {
return T::hdf5_format(); }
55#define H5_SPECIALIZE_FORMAT2(X, Y) \
58 struct hdf5_format_impl<X> { \
59 static std::string invoke() { return H5_AS_STRING(Y); } \
62#define H5_SPECIALIZE_FORMAT(X) H5_SPECIALIZE_FORMAT2(X, X)
64 H5_SPECIALIZE_FORMAT(
bool);
65 H5_SPECIALIZE_FORMAT(
int);
66 H5_SPECIALIZE_FORMAT(
long);
67 H5_SPECIALIZE_FORMAT(
long long);
68 H5_SPECIALIZE_FORMAT(
unsigned int);
69 H5_SPECIALIZE_FORMAT(
unsigned long);
70 H5_SPECIALIZE_FORMAT(
unsigned long long);
71 H5_SPECIALIZE_FORMAT(
float);
72 H5_SPECIALIZE_FORMAT(
double);
73 H5_SPECIALIZE_FORMAT(
long double);
74 H5_SPECIALIZE_FORMAT2(std::complex<double>, complex);
84 return hdf5_format_impl<T>::invoke();
96 return hdf5_format_impl<T>::invoke();
113 template <
typename T>
126 template <
typename T>
177 template <
typename T>
193 template <
typename T>
Provides a handle to an HDF5 group and various methods to simplify the creation/opening of subgroups,...
void h5_write_attribute(object obj, std::string const &name, T const &x) H5_REQUIRES(std
Write a scalar to an HDF5 attribute.
Macros used in the h5 library.
Provides functions to read/write std::string, char* and h5::char_buf objects from/to HDF5.