23 #include "openPMD/auxiliary/TypeTraits.hpp" 33 template <
typename DoDetermineDatatype>
36 using DT =
typename DoDetermineDatatype::DT_enum;
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>
77 using DT =
typename DoDetermineDatatype::DT_enum;
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.";
Definition: Datatype_internal.hpp:75
Definition: Container.cpp:51
Public definitions of openPMD-api.
Definition: Datatype_internal.hpp:34