#include <highfive/H5DataType.hpp>
#include <type_traits>
Go to the source code of this file.
|
| hdtree |
| Geant4 does a GLOBAL definition of the keyword TRUE.
|
|
|
template<typename AtomicType > |
using | hdtree::is_atomic = std::integral_constant< bool, std::is_arithmetic< AtomicType >::value||std::is_same< AtomicType, std::string >::value > |
| HighFive supports many C++ "atomic" types that are used regularly. More...
|
|
|
enum class | hdtree::Bool : bool { TRUE = true
, FALSE = false
} |
| Boolean enum aligned with h5py. More...
|
|
|
template<typename AtomicType > |
constexpr bool | hdtree::is_atomic_v = is_atomic<AtomicType>::value |
| shorthand for easier use
|
|
◆ HighFive::create_datatype< hdtree::Bool >()
template<>
HighFive::DataType HighFive::create_datatype< hdtree::Bool > |
( |
| ) |
|
full specialization of HighFive template function
This is necessary for compile-time registration of a new type and is usually hidden within the HIGHFIVE_REGISTER_TYPE macro.
The reason we have to not use the macro here is two fold.
- We need the declaration of this registration to be done in this header so that it is accessible by both the hdtree target and the downstream fire::framework target.
- We need to define the registration only once to avoid a duplicate definition compiler error during the linking step.
These two goals can be met by splitting the declaration and the definition of this full specialization into the header and source files of Atomic.