HighFive 2.9.0
HighFive - Header-only C++ HDF5 interface
Loading...
Searching...
No Matches
H5DataType.hpp File Reference
#include <type_traits>
#include <vector>
#include <H5Tpublic.h>
#include "H5Object.hpp"
#include "bits/H5Utils.hpp"
#include "bits/string_padding.hpp"
#include "H5PropertyList.hpp"
#include "bits/h5_wrapper.hpp"
#include "bits/h5t_wrapper.hpp"
#include "bits/H5DataType_misc.hpp"
Include dependency graph for H5DataType.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  HighFive::DataType
 HDF5 Data Type. More...
 
class  HighFive::StringType
 
class  HighFive::FixedLengthStringType
 
class  HighFive::VariableLengthStringType
 
class  HighFive::AtomicType< T >
 create an HDF5 DataType from a C++ type More...
 
class  HighFive::CompoundType
 Create a compound HDF5 datatype. More...
 
struct  HighFive::CompoundType::member_def
 Use for defining a sub-type of compound type. More...
 
class  HighFive::EnumType< T >
 Create a enum HDF5 datatype. More...
 
struct  HighFive::EnumType< T >::member_def
 Use for defining a member of enum type. More...
 
class  HighFive::deprecated::FixedLenStringArray< N >
 A structure representing a set of fixed-length strings. More...
 

Namespaces

namespace  HighFive
 
namespace  HighFive::deprecated
 

Macros

#define HIGHFIVE_REGISTER_TYPE(type, function)
 Macro to extend datatype of HighFive.
 

Enumerations

enum class  HighFive::DataTypeClass {
  HighFive::Time = 1 << 1 , HighFive::Integer = 1 << 2 , HighFive::Float = 1 << 3 , HighFive::String = 1 << 4 ,
  HighFive::BitField = 1 << 5 , HighFive::Opaque = 1 << 6 , HighFive::Compound = 1 << 7 , HighFive::Reference = 1 << 8 ,
  HighFive::Enum = 1 << 9 , HighFive::VarLen = 1 << 10 , HighFive::Array = 1 << 11 , HighFive::Invalid = 0
}
 Enum of Fundamental data classes. More...
 
enum class  HighFive::CharacterSet : std::underlying_type< H5T_cset_t >::type { HighFive::Ascii = H5T_CSET_ASCII , HighFive::Utf8 = H5T_CSET_UTF8 }
 

Functions

DataTypeClass HighFive::operator| (DataTypeClass lhs, DataTypeClass rhs)
 
DataTypeClass HighFive::operator& (DataTypeClass lhs, DataTypeClass rhs)
 
template<typename T >
DataType HighFive::create_datatype ()
 Create a DataType instance representing type T.
 
template<typename T >
DataType HighFive::create_and_check_datatype ()
 Create a DataType instance representing type T and perform a sanity check on its size.
 

Macro Definition Documentation

◆ HIGHFIVE_REGISTER_TYPE

#define HIGHFIVE_REGISTER_TYPE ( type,
function )
Value:
template <> \
inline HighFive::DataType HighFive::create_datatype<type>() { \
return function(); \
}
HDF5 Data Type.
Definition H5DataType.hpp:61

Macro to extend datatype of HighFive.

This macro has to be called outside of any namespace.

namespace app {
enum FooBar { FOO = 1, BAR = 2 };
EnumType create_enum_foobar() {
return EnumType<FooBar>({{"FOO", FooBar::FOO},
{"BAR", FooBar::BAR}});
}
}
HIGHFIVE_REGISTER_TYPE(FooBar, ::app::create_enum_foobar)
#define HIGHFIVE_REGISTER_TYPE(type, function)
Macro to extend datatype of HighFive.
Definition H5DataType.hpp:488