]> git.tdb.fi Git - libs/core.git/blobdiff - source/core/inttypes.h
Use integer types from <cstdint>
[libs/core.git] / source / core / inttypes.h
index c0af5ca9f2d2cf485b7a84d56285835087e3119c..68b870cc97a3890ef23bb1948458c5df08351882 100644 (file)
@@ -1,70 +1,20 @@
 #ifndef MSP_CORE_INTTYPES_H_
 #define MSP_CORE_INTTYPES_H_
 
-#include <climits>
-#include "typelist.h"
+#include <cstdint>
 
 namespace Msp {
 
-// Define lists of standard types, both signed and unsigned variants
-typedef TypeList<signed char, short, int, long>::Type StandardSignedTypes;
-typedef TypeList<unsigned char, unsigned short, unsigned int, unsigned long>::Type StandardUnsignedTypes;
-
-// Then add possible nonstandard types
-#if defined(__GNUC__)
-#if (__GNUC__>4 || (__GNUC__==4 && __GNUC_MINOR__>=6)) && defined(__LP64__)
-#pragma GCC diagnostic push
-#if __GNUC__>=5
-#pragma GCC diagnostic ignored "-Wpedantic"
-#else
-#pragma GCC diagnostic ignored "-pedantic"
-#endif
-typedef TypeList<StandardSignedTypes, long long, __int128>::Type PlatformSignedTypes;
-typedef TypeList<StandardUnsignedTypes, unsigned long long, unsigned __int128>::Type PlatformUnsignedTypes;
-#pragma GCC diagnostic pop
-#else
-typedef TypeList<StandardSignedTypes, long long>::Type PlatformSignedTypes;
-typedef TypeList<StandardUnsignedTypes, unsigned long long>::Type PlatformUnsignedTypes;
-#endif
-#elif defined(_MSC_VER)
-typedef TypeList<StandardSignedTypes, __int64>::Type PlatformSignedTypes;
-typedef TypeList<StandardUnsignedTypes, unsigned __int64>::Type PlatformUnsignedTypes;
-#else
-typedef StandardSignedTypes PlatformSignedTypes;
-typedef StandardUnsignedTypes PlatformUnsignedTypes;
-#endif
-
-/** A helper for choosing an integer type of a specific size.  The size
-parameter is in bits.  The resulting types can be obtained from the SignedType
-and UnsignedType typedefs. */
-template<unsigned size>
-struct Int
-{
-       template<typename T>
-       struct Predicate
-       {
-               enum { value = (sizeof(T)*CHAR_BIT==size) };
-       };
-
-       typedef typename TypeChooser<PlatformSignedTypes, Predicate>::Type SignedType;
-       typedef typename TypeChooser<PlatformUnsignedTypes, Predicate>::Type UnsignedType;
-};
-
-/** A helper for choosing an integer that's the same size as another type. */
-template<typename T>
-struct MatchingInt: Int<sizeof(T)*CHAR_BIT>
-{ };
-
-// Finally define convenient shorthands for the actual integer types
-typedef Int<8>::SignedType Int8;
-typedef Int<8>::UnsignedType UInt8;
-typedef Int<16>::SignedType Int16;
-typedef Int<16>::UnsignedType UInt16;
-typedef Int<32>::SignedType Int32;
-typedef Int<32>::UnsignedType UInt32;
-typedef Int<64>::SignedType Int64;
-typedef Int<64>::UnsignedType UInt64;
-typedef MatchingInt<void *>::UnsignedType IntPtr;
+// These typedefs will be deprecated at some point
+typedef std::int8_t Int8;
+typedef std::uint8_t UInt8;
+typedef std::int16_t Int16;
+typedef std::uint16_t UInt16;
+typedef std::int32_t Int32;
+typedef std::uint32_t UInt32;
+typedef std::int64_t Int64;
+typedef std::uint64_t UInt64;
+typedef std::intptr_t IntPtr;
 
 } // namespace Msp