@@ -169,47 +169,50 @@ class CspArrayType : public CspType
169
169
CspTypePtr m_elemType;
170
170
};
171
171
172
- template <> struct CspType ::Type::fromCType<std::_Bit_reference> { static constexpr CspType::Type type = CspType::Type::BOOL; };
173
- template <> struct CspType ::Type::fromCType<bool > { static constexpr CspType::Type type = CspType::Type::BOOL; };
174
- template <> struct CspType ::Type::fromCType<int8_t > { static constexpr CspType::Type type = CspType::Type::INT8; };
175
- template <> struct CspType ::Type::fromCType<uint8_t > { static constexpr CspType::Type type = CspType::Type::UINT8; };
176
- template <> struct CspType ::Type::fromCType<int16_t > { static constexpr CspType::Type type = CspType::Type::INT16; };
177
- template <> struct CspType ::Type::fromCType<uint16_t > { static constexpr CspType::Type type = CspType::Type::UINT16; };
178
- template <> struct CspType ::Type::fromCType<int32_t > { static constexpr CspType::Type type = CspType::Type::INT32; };
179
- template <> struct CspType ::Type::fromCType<uint32_t > { static constexpr CspType::Type type = CspType::Type::UINT32; };
180
- template <> struct CspType ::Type::fromCType<int64_t > { static constexpr CspType::Type type = CspType::Type::INT64; };
181
- template <> struct CspType ::Type::fromCType<uint64_t > { static constexpr CspType::Type type = CspType::Type::UINT64; };
182
- template <> struct CspType ::Type::fromCType<double > { static constexpr CspType::Type type = CspType::Type::DOUBLE; };
183
- template <> struct CspType ::Type::fromCType<DateTime> { static constexpr CspType::Type type = CspType::Type::DATETIME; };
184
- template <> struct CspType ::Type::fromCType<TimeDelta> { static constexpr CspType::Type type = CspType::Type::TIMEDELTA; };
185
- template <> struct CspType ::Type::fromCType<Date> { static constexpr CspType::Type type = CspType::Type::DATE; };
186
- template <> struct CspType ::Type::fromCType<Time> { static constexpr CspType::Type type = CspType::Type::TIME; };
187
- template <> struct CspType ::Type::fromCType<CspEnum> { static constexpr CspType::Type type = CspType::Type::ENUM; };
188
- template <> struct CspType ::Type::fromCType<CspType::StringCType> { static constexpr CspType::Type type = CspType::Type::STRING; };
189
- template <> struct CspType ::Type::fromCType<StructPtr> { static constexpr CspType::Type type = CspType::Type::STRUCT; };
190
- template <typename T> struct CspType ::Type::fromCType<TypedStructPtr<T>> { static constexpr CspType::Type type = CspType::Type::STRUCT; };
191
- template <> struct CspType ::Type::fromCType<DialectGenericType> { static constexpr CspType::Type type = CspType::Type::DIALECT_GENERIC; };
192
- template <typename T> struct CspType ::Type::fromCType<std::vector<T>> { static constexpr CspType::Type type = CspType::Type::ARRAY; };
193
-
194
- template <> struct CspType ::Type::toCType<CspType::Type::BOOL,void > { using type = bool ; };
195
- template <> struct CspType ::Type::toCType<CspType::Type::INT8,void > { using type = int8_t ; };
196
- template <> struct CspType ::Type::toCType<CspType::Type::UINT8,void > { using type = uint8_t ; };
197
- template <> struct CspType ::Type::toCType<CspType::Type::INT16,void > { using type = int16_t ; };
198
- template <> struct CspType ::Type::toCType<CspType::Type::UINT16,void > { using type = uint16_t ; };
199
- template <> struct CspType ::Type::toCType<CspType::Type::INT32,void > { using type = int32_t ; };
200
- template <> struct CspType ::Type::toCType<CspType::Type::UINT32,void > { using type = uint32_t ; };
201
- template <> struct CspType ::Type::toCType<CspType::Type::INT64,void > { using type = int64_t ; };
202
- template <> struct CspType ::Type::toCType<CspType::Type::UINT64,void > { using type = uint64_t ; };
203
- template <> struct CspType ::Type::toCType<CspType::Type::DOUBLE,void > { using type = double ; };
204
- template <> struct CspType ::Type::toCType<CspType::Type::DATETIME,void > { using type = DateTime; };
205
- template <> struct CspType ::Type::toCType<CspType::Type::TIMEDELTA,void > { using type = TimeDelta; };
206
- template <> struct CspType ::Type::toCType<CspType::Type::DATE,void > { using type = Date; };
207
- template <> struct CspType ::Type::toCType<CspType::Type::TIME,void > { using type = Time; };
208
- template <> struct CspType ::Type::toCType<CspType::Type::ENUM,void > { using type = CspEnum; };
209
- template <> struct CspType ::Type::toCType<CspType::Type::STRING,void > { using type = CspType::StringCType; };
210
- template <> struct CspType ::Type::toCType<CspType::Type::STRUCT,void > { using type = StructPtr; };
211
- template <> struct CspType ::Type::toCType<CspType::Type::DIALECT_GENERIC,void > { using type = DialectGenericType; };
212
- template <typename T> struct CspType ::Type::toCType<CspType::Type::ARRAY,T> { using type = std::vector<T>; };
172
+ #ifndef __clang__
173
+ template <> struct CspType ::Type::fromCType<std::_Bit_reference> { static constexpr CspType::Type type = CspType::Type::BOOL; };
174
+ #endif
175
+
176
+ template <> struct CspType ::TypeTraits::fromCType<bool > { static constexpr CspType::TypeTraits::_enum type = CspType::TypeTraits::BOOL; };
177
+ template <> struct CspType ::TypeTraits::fromCType<int8_t > { static constexpr CspType::TypeTraits::_enum type = CspType::TypeTraits::INT8; };
178
+ template <> struct CspType ::TypeTraits::fromCType<uint8_t > { static constexpr CspType::TypeTraits::_enum type = CspType::TypeTraits::UINT8; };
179
+ template <> struct CspType ::TypeTraits::fromCType<int16_t > { static constexpr CspType::TypeTraits::_enum type = CspType::TypeTraits::INT16; };
180
+ template <> struct CspType ::TypeTraits::fromCType<uint16_t > { static constexpr CspType::TypeTraits::_enum type = CspType::TypeTraits::UINT16; };
181
+ template <> struct CspType ::TypeTraits::fromCType<int32_t > { static constexpr CspType::TypeTraits::_enum type = CspType::TypeTraits::INT32; };
182
+ template <> struct CspType ::TypeTraits::fromCType<uint32_t > { static constexpr CspType::TypeTraits::_enum type = CspType::TypeTraits::UINT32; };
183
+ template <> struct CspType ::TypeTraits::fromCType<int64_t > { static constexpr CspType::TypeTraits::_enum type = CspType::TypeTraits::INT64; };
184
+ template <> struct CspType ::TypeTraits::fromCType<uint64_t > { static constexpr CspType::TypeTraits::_enum type = CspType::TypeTraits::UINT64; };
185
+ template <> struct CspType ::TypeTraits::fromCType<double > { static constexpr CspType::TypeTraits::_enum type = CspType::TypeTraits::DOUBLE; };
186
+ template <> struct CspType ::TypeTraits::fromCType<DateTime> { static constexpr CspType::TypeTraits::_enum type = CspType::TypeTraits::DATETIME; };
187
+ template <> struct CspType ::TypeTraits::fromCType<TimeDelta> { static constexpr CspType::TypeTraits::_enum type = CspType::TypeTraits::TIMEDELTA; };
188
+ template <> struct CspType ::TypeTraits::fromCType<Date> { static constexpr CspType::TypeTraits::_enum type = CspType::TypeTraits::DATE; };
189
+ template <> struct CspType ::TypeTraits::fromCType<Time> { static constexpr CspType::TypeTraits::_enum type = CspType::TypeTraits::TIME; };
190
+ template <> struct CspType ::TypeTraits::fromCType<CspEnum> { static constexpr CspType::TypeTraits::_enum type = CspType::TypeTraits::ENUM; };
191
+ template <> struct CspType ::TypeTraits::fromCType<CspType::StringCType> { static constexpr CspType::TypeTraits::_enum type = CspType::TypeTraits::STRING; };
192
+ template <> struct CspType ::TypeTraits::fromCType<StructPtr> { static constexpr CspType::TypeTraits::_enum type = CspType::TypeTraits::STRUCT; };
193
+ template <typename T> struct CspType ::TypeTraits::fromCType<TypedStructPtr<T>> { static constexpr CspType::TypeTraits::_enum type = CspType::TypeTraits::STRUCT; };
194
+ template <> struct CspType ::TypeTraits::fromCType<DialectGenericType> { static constexpr CspType::TypeTraits::_enum type = CspType::TypeTraits::DIALECT_GENERIC; };
195
+ template <typename T> struct CspType ::TypeTraits::fromCType<std::vector<T>> { static constexpr CspType::TypeTraits::_enum type = CspType::TypeTraits::ARRAY; };
196
+
197
+ template <> struct CspType ::TypeTraits::toCType<CspType::TypeTraits::BOOL,void > { using type = bool ; };
198
+ template <> struct CspType ::TypeTraits::toCType<CspType::TypeTraits::INT8,void > { using type = int8_t ; };
199
+ template <> struct CspType ::TypeTraits::toCType<CspType::TypeTraits::UINT8,void > { using type = uint8_t ; };
200
+ template <> struct CspType ::TypeTraits::toCType<CspType::TypeTraits::INT16,void > { using type = int16_t ; };
201
+ template <> struct CspType ::TypeTraits::toCType<CspType::TypeTraits::UINT16,void > { using type = uint16_t ; };
202
+ template <> struct CspType ::TypeTraits::toCType<CspType::TypeTraits::INT32,void > { using type = int32_t ; };
203
+ template <> struct CspType ::TypeTraits::toCType<CspType::TypeTraits::UINT32,void > { using type = uint32_t ; };
204
+ template <> struct CspType ::TypeTraits::toCType<CspType::TypeTraits::INT64,void > { using type = int64_t ; };
205
+ template <> struct CspType ::TypeTraits::toCType<CspType::TypeTraits::UINT64,void > { using type = uint64_t ; };
206
+ template <> struct CspType ::TypeTraits::toCType<CspType::TypeTraits::DOUBLE,void > { using type = double ; };
207
+ template <> struct CspType ::TypeTraits::toCType<CspType::TypeTraits::DATETIME,void > { using type = DateTime; };
208
+ template <> struct CspType ::TypeTraits::toCType<CspType::TypeTraits::TIMEDELTA,void > { using type = TimeDelta; };
209
+ template <> struct CspType ::TypeTraits::toCType<CspType::TypeTraits::DATE,void > { using type = Date; };
210
+ template <> struct CspType ::TypeTraits::toCType<CspType::TypeTraits::TIME,void > { using type = Time; };
211
+ template <> struct CspType ::TypeTraits::toCType<CspType::TypeTraits::ENUM,void > { using type = CspEnum; };
212
+ template <> struct CspType ::TypeTraits::toCType<CspType::TypeTraits::STRING,void > { using type = CspType::StringCType; };
213
+ template <> struct CspType ::TypeTraits::toCType<CspType::TypeTraits::STRUCT,void > { using type = StructPtr; };
214
+ template <> struct CspType ::TypeTraits::toCType<CspType::TypeTraits::DIALECT_GENERIC,void > { using type = DialectGenericType; };
215
+ template <typename T> struct CspType ::TypeTraits::toCType<CspType::TypeTraits::ARRAY,T> { using type = std::vector<T>; };
213
216
214
217
template <> struct CspType ::fromCType<bool > { static CspTypePtr & type () { return CspType::BOOL (); } };
215
218
template <> struct CspType ::fromCType<int8_t > { static CspTypePtr & type () { return CspType::INT8 (); } };
0 commit comments