23 #include "openPMD/auxiliary/TypeTraits.hpp"
33 template <
typename DoDetermineDatatype>
39 constexpr
static DT call()
41 if constexpr (auxiliary::IsVector_v<T>)
43 return DoDetermineDatatype::template call<
44 typename T::value_type>();
46 else if constexpr (auxiliary::IsArray_v<T>)
48 return DoDetermineDatatype::template call<
49 typename T::value_type>();
53 return DoDetermineDatatype::template call<T>();
55 #if defined(__INTEL_COMPILER)
63 #pragma warning(disable : 1011)
65 #pragma warning(default : 1011)
70 constexpr
static char const *errorMsg =
71 "basicDatatype: received unknown datatype.";
74 template <
typename DoDetermineDatatype>
80 constexpr
static DT call()
82 if constexpr (auxiliary::IsVector_v<T>)
84 return DoDetermineDatatype::template call<T>();
86 else if constexpr (auxiliary::IsArray_v<T>)
88 return DoDetermineDatatype::template call<
89 std::vector<typename T::value_type>>();
93 return DoDetermineDatatype::template call<std::vector<T>>();
95 #if defined(__INTEL_COMPILER)
103 #pragma warning(disable : 1011)
105 #pragma warning(default : 1011)
110 constexpr
static char const *errorMsg =
111 "toVectorType: received unknown datatype.";
Public definitions of openPMD-api.
Definition: Date.cpp:29
Datatype
Concrete datatype of an object available at runtime.
Definition: Datatype.hpp:51
Definition: Datatype_internal.hpp:35
Definition: Datatype_internal.hpp:76