[ox/std] Make is_integral use raw types
This commit is contained in:
+33
-35
@@ -103,29 +103,30 @@ constexpr bool is_const_v<const T> = true;
|
||||
// is_integral /////////////////////////////////////////////////////////////////
|
||||
|
||||
template<typename T> struct is_integral: false_type {};
|
||||
template<> struct is_integral<bool> : true_type {};
|
||||
template<> struct is_integral<wchar_t> : true_type {};
|
||||
template<> struct is_integral<int8_t> : true_type {};
|
||||
template<> struct is_integral<uint8_t> : true_type {};
|
||||
template<> struct is_integral<int16_t> : true_type {};
|
||||
template<> struct is_integral<uint16_t>: true_type {};
|
||||
template<> struct is_integral<int32_t> : true_type {};
|
||||
template<> struct is_integral<uint32_t>: true_type {};
|
||||
template<> struct is_integral<const bool> : true_type {};
|
||||
template<> struct is_integral<const wchar_t> : true_type {};
|
||||
template<> struct is_integral<const int8_t> : true_type {};
|
||||
template<> struct is_integral<const uint8_t> : true_type {};
|
||||
template<> struct is_integral<const int16_t> : true_type {};
|
||||
template<> struct is_integral<const uint16_t>: true_type {};
|
||||
template<> struct is_integral<const int32_t> : true_type {};
|
||||
template<> struct is_integral<const uint32_t>: true_type {};
|
||||
|
||||
// some of these need to be done with the actual language syntax because no one
|
||||
// can agree on what an (u)int64_t is...
|
||||
template<> struct is_integral<bool> : true_type {};
|
||||
template<> struct is_integral<wchar_t> : true_type {};
|
||||
template<> struct is_integral<signed char> : true_type {};
|
||||
template<> struct is_integral<unsigned char> : true_type {};
|
||||
template<> struct is_integral<short> : true_type {};
|
||||
template<> struct is_integral<unsigned short> : true_type {};
|
||||
template<> struct is_integral<int> : true_type {};
|
||||
template<> struct is_integral<unsigned int> : true_type {};
|
||||
template<> struct is_integral<long> : true_type {};
|
||||
template<> struct is_integral<long long> : true_type {};
|
||||
template<> struct is_integral<unsigned long> : true_type {};
|
||||
template<> struct is_integral<unsigned long long> : true_type {};
|
||||
|
||||
template<> struct is_integral<const bool> : true_type {};
|
||||
template<> struct is_integral<const wchar_t> : true_type {};
|
||||
template<> struct is_integral<const signed char> : true_type {};
|
||||
template<> struct is_integral<const unsigned char> : true_type {};
|
||||
template<> struct is_integral<const short> : true_type {};
|
||||
template<> struct is_integral<const unsigned short> : true_type {};
|
||||
template<> struct is_integral<const int> : true_type {};
|
||||
template<> struct is_integral<const unsigned int> : true_type {};
|
||||
template<> struct is_integral<const long> : true_type {};
|
||||
template<> struct is_integral<const long long> : true_type {};
|
||||
template<> struct is_integral<const unsigned long> : true_type {};
|
||||
@@ -138,29 +139,26 @@ constexpr bool is_integral_v = is_integral<T>::value;
|
||||
// is_integer /////////////////////////////////////////////////////////////////
|
||||
|
||||
template<typename T> struct is_integer: false_type {};
|
||||
template<> struct is_integer<int8_t> : true_type {};
|
||||
template<> struct is_integer<uint8_t> : true_type {};
|
||||
template<> struct is_integer<int16_t> : true_type {};
|
||||
template<> struct is_integer<uint16_t>: true_type {};
|
||||
template<> struct is_integer<int32_t> : true_type {};
|
||||
template<> struct is_integer<uint32_t>: true_type {};
|
||||
template<> struct is_integer<int8_t const> : true_type {};
|
||||
template<> struct is_integer<uint8_t const> : true_type {};
|
||||
template<> struct is_integer<int16_t const> : true_type {};
|
||||
template<> struct is_integer<uint16_t const>: true_type {};
|
||||
template<> struct is_integer<int32_t const> : true_type {};
|
||||
template<> struct is_integer<uint32_t const>: true_type {};
|
||||
|
||||
// some of these need to be done with the actual language syntax because no one
|
||||
// can agree on what an (u)int64_t is...
|
||||
template<> struct is_integer<signed char> : true_type {};
|
||||
template<> struct is_integer<unsigned char> : true_type {};
|
||||
template<> struct is_integer<short> : true_type {};
|
||||
template<> struct is_integer<unsigned short> : true_type {};
|
||||
template<> struct is_integer<int> : true_type {};
|
||||
template<> struct is_integer<unsigned int> : true_type {};
|
||||
template<> struct is_integer<long> : true_type {};
|
||||
template<> struct is_integer<long long> : true_type {};
|
||||
template<> struct is_integer<unsigned long> : true_type {};
|
||||
template<> struct is_integer<unsigned long long> : true_type {};
|
||||
template<> struct is_integer<long const>: true_type {};
|
||||
template<> struct is_integer<long long const>: true_type {};
|
||||
template<> struct is_integer<unsigned long const>: true_type {};
|
||||
template<> struct is_integer<unsigned long long const>: true_type {};
|
||||
template<> struct is_integer<const signed char> : true_type {};
|
||||
template<> struct is_integer<const unsigned char> : true_type {};
|
||||
template<> struct is_integer<const short> : true_type {};
|
||||
template<> struct is_integer<const unsigned short> : true_type {};
|
||||
template<> struct is_integer<const int> : true_type {};
|
||||
template<> struct is_integer<const unsigned int> : true_type {};
|
||||
template<> struct is_integer<const long> : true_type {};
|
||||
template<> struct is_integer<const long long> : true_type {};
|
||||
template<> struct is_integer<const unsigned long> : true_type {};
|
||||
template<> struct is_integer<const unsigned long long> : true_type {};
|
||||
|
||||
template<typename T>
|
||||
constexpr bool is_integer_v = is_integer<T>::value;
|
||||
|
||||
Reference in New Issue
Block a user