82 #ifndef ARRAY_UDF_TYPE_H
83 #define ARRAY_UDF_TYPE_H
85 #include <type_traits>
90 #if __cplusplus > 201402L
142 using AuEndpointDataTypeUnion = std::variant<short, int, long, long long, unsigned short, unsigned int, unsigned long, unsigned long long, float, double, std::complex<double>, std::string>;
144 template <
typename T>
147 if (std::is_same<T, int>::value)
151 else if (std::is_same<T, short>::value)
155 else if (std::is_same<T, long>::value)
159 else if (std::is_same<T, long long>::value)
163 else if (std::is_same<T, unsigned int>::value)
167 else if (std::is_same<T, unsigned short>::value)
171 else if (std::is_same<T, unsigned long>::value)
175 else if (std::is_same<T, unsigned long long>::value)
179 else if (std::is_same<T, float>::value)
183 else if (std::is_same<T, double>::value)
187 else if (std::is_same<T, std::complex<double>>::value)
191 else if (std::is_same<T, std::string>::value)
218 template <
typename T>
223 template <
typename T,
typename A>
224 struct is_vector<std::vector<T, A>> :
public std::true_type
230 template <
typename T>
236 template <
typename T>
241 template <
typename T,
typename A>
248 template <
typename T>
255 #define AU_UDT_INIT(A) FT_UDT_INIT(A)
258 #define FT_UDT_INIT(A) \
std::variant< short, int, long, long long, unsigned short, unsigned int, unsigned long, unsigned long long, float, double, std::complex< double >, std::string > AuEndpointDataTypeUnion
It should follow the order of above AuEndpointDataType.
Definition: ft_type.h:142
AuEndpointType
Definition: ft_type.h:95
@ EP_MEMORY
Definition: ft_type.h:101
@ EP_ADIOS
Definition: ft_type.h:98
@ EP_H5VDS
Definition: ft_type.h:102
@ EP_DASSA
Definition: ft_type.h:104
@ EP_HDF5
Definition: ft_type.h:96
@ EP_DIR
Definition: ft_type.h:103
@ EP_TDMS
Definition: ft_type.h:105
@ EP_VIRTUAL
Definition: ft_type.h:100
@ EP_BINARY
Definition: ft_type.h:99
@ EP_PNETCDF
Definition: ft_type.h:97
AuEndpointDataType InferDataType()
Definition: ft_type.h:145
AuEndpointDataType FTDataType
Definition: ft_type.h:135
AuEndpointType MapString2EndpointType(std::string endpoint_type_str)
map string typed name of type to AuEndpointType
Definition: ft_type.cpp:83
AuEndpointDataType FTType
Definition: ft_type.h:136
OutputVectorFlatDirection
Definition: ft_type.h:212
@ AU_FLAT_OUTPUT_COL
Definition: ft_type.h:213
@ AU_FLAT_OUTPUT_ROW
Definition: ft_type.h:214
@ AU_FLAT_OUTPUT_NEW
Definition: ft_type.h:215
AuEndpointDataType
Definition: ft_type.h:118
@ AU_LONG
Definition: ft_type.h:122
@ AU_ULLONG
Definition: ft_type.h:127
@ AU_DOUBLE
Definition: ft_type.h:129
@ AU_FLOAT
Definition: ft_type.h:128
@ AU_INT
Definition: ft_type.h:121
@ AU_ULONG
Definition: ft_type.h:126
@ AU_USHORT
Definition: ft_type.h:124
@ AU_LONG_LONG
Definition: ft_type.h:123
@ AU_STRING
Definition: ft_type.h:131
@ AU_NCLASSES
Definition: ft_type.h:132
@ AU_SHORT
Definition: ft_type.h:120
@ AU_DOUBLE_COMPLEX
Definition: ft_type.h:130
@ AU_NO_TYPE
Definition: ft_type.h:119
@ AU_UINT
Definition: ft_type.h:125
bool InferVectorType()
Definition: ft_type.h:231
bool InferVectorVectorType()
Definition: ft_type.h:249
Definition: ft_type.h:238
Definition: ft_type.h:220