8#if defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 3))
40#if defined(__APPLE_CC__) \
41 || (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) \
42 || (defined(_MSC_VER) && (_MSC_VER >= 1900))
43#ifndef tmwtypes_do_not_include_stdbool
48#define LOGICAL_IS_A_TYPE
49#define SPARSE_GENERALIZATION
52# define double double_not_allowed
53# define float float_not_allowed
63# define FLT_MANT_DIG 24
66# define DBL_MANT_DIG 53
89typedef unsigned char uchar_T;
90typedef unsigned short ushort_T;
91typedef unsigned long ulong_T;
93#if (defined(_MSC_VER) && _MSC_VER >= 1500) \
94 || defined(__x86_64__) || defined(__LP64__) \
97typedef unsigned long long ulonglong_T;
134#ifndef TMW_BITS_PER_INT
136# define TMW_BITS_PER_INT 8
137# elif INT_MAX == 0x7FFFL
138# define TMW_BITS_PER_INT 16
139# elif INT_MAX == 0x7FFFFFFFL
140# define TMW_BITS_PER_INT 32
142# define TMW_BITS_PER_INT -1
146#ifndef TMW_BITS_PER_LONG
147# if LONG_MAX == 0x7FL
148# define TMW_BITS_PER_LONG 8
149# elif LONG_MAX == 0x7FFFL
150# define TMW_BITS_PER_LONG 16
151# elif LONG_MAX == 0x7FFFFFFFL
152# define TMW_BITS_PER_LONG 32
154# define TMW_BITS_PER_LONG -1
158#ifndef TMW_BITS_PER_SHRT
159# if SHRT_MAX == 0x7FL
160# define TMW_BITS_PER_SHRT 8
161# elif SHRT_MAX == 0x7FFFL
162# define TMW_BITS_PER_SHRT 16
163# elif SHRT_MAX == 0x7FFFFFFFL
164# define TMW_BITS_PER_SHRT 32
166# define TMW_BITS_PER_SHRT -1
170#ifndef TMW_BITS_PER_SCHAR
171# if SCHAR_MAX == 0x7FL
172# define TMW_BITS_PER_SCHAR 8
173# elif SCHAR_MAX == 0x7FFFL
174# define TMW_BITS_PER_SCHAR 16
175# elif SCHAR_MAX == 0x7FFFFFFFL
176# define TMW_BITS_PER_SCHAR 32
178# define TMW_BITS_PER_SCHAR -1
182#ifndef TMW_CHAR_SIGNED
183# if SCHAR_MAX == CHAR_MAX
184# define TMW_CHAR_SIGNED 1
186# define TMW_CHAR_SIGNED 0
209# if defined(MW_LIBTOOLING)
210# define INT8_T int8_t
211# elif TMW_BITS_PER_INT == 8
213# elif TMW_BITS_PER_LONG == 8
215# elif TMW_BITS_PER_SCHAR == 8
216# define INT8_T signed char
217# elif TMW_BITS_PER_SHRT == 8
222 typedef INT8_T int8_T;
226# if defined(MW_LIBTOOLING)
227# define UINT8_T uint8_t
228# elif TMW_BITS_PER_INT == 8
229# define UINT8_T unsigned int
230# elif TMW_BITS_PER_LONG == 8
231# define UINT8_T unsigned long
232# elif TMW_BITS_PER_SCHAR == 8
233# define UINT8_T unsigned char
234# elif TMW_BITS_PER_SHRT == 8
235# define UINT8_T unsigned short
239 typedef UINT8_T uint8_T;
244# if defined(MW_LIBTOOLING)
245# define INT16_T int16_t
246# elif TMW_BITS_PER_INT == 16
248# elif TMW_BITS_PER_LONG == 16
250# elif TMW_BITS_PER_SCHAR == 16
251# define INT16_T signed char
252# elif TMW_BITS_PER_SHRT == 16
253# define INT16_T short
257 typedef INT16_T int16_T;
262# if defined(MW_LIBTOOLING)
263# define UINT16_T uint16_t
264# elif TMW_BITS_PER_INT == 16
265# define UINT16_T unsigned int
266# elif TMW_BITS_PER_LONG == 16
267# define UINT16_T unsigned long
268# elif TMW_BITS_PER_SCHAR == 16
269# define UINT16_T unsigned char
270# elif TMW_BITS_PER_SHRT == 16
271# define UINT16_T unsigned short
275 typedef UINT16_T uint16_T;
280# if defined(MW_LIBTOOLING)
281# define INT32_T int32_t
282# elif TMW_BITS_PER_INT == 32
284# elif TMW_BITS_PER_LONG == 32
286# elif TMW_BITS_PER_SCHAR == 32
287# define INT32_T signed char
288# elif TMW_BITS_PER_SHRT == 32
289# define INT32_T short
293 typedef INT32_T int32_T;
298# if defined(MW_LIBTOOLING)
299# define UINT32_T uint32_t
300# elif TMW_BITS_PER_INT == 32
301# define UINT32_T unsigned int
302# elif TMW_BITS_PER_LONG == 32
303# define UINT32_T unsigned long
304# elif TMW_BITS_PER_SCHAR == 32
305# define UINT32_T unsigned char
306# elif TMW_BITS_PER_SHRT == 32
307# define UINT32_T unsigned short
311 typedef UINT32_T uint32_T;
323# define INT8_T INT16_T
324 typedef INT8_T int8_T;
327# define INT8_T INT32_T
328 typedef INT8_T int8_T;
335# define UINT8_T UINT16_T
336 typedef UINT8_T uint8_T;
339# define UINT8_T UINT32_T
340 typedef UINT8_T uint8_T;
347# define INT16_T INT32_T
348 typedef INT16_T int16_T;
354# define UINT16_T UINT32_T
355 typedef UINT16_T uint16_T;
364# if FLT_MANT_DIG >= 23
365# define REAL32_T float
368# define REAL32_T float
372 typedef REAL32_T real32_T;
378# if DBL_MANT_DIG >= 52
379# define REAL64_T double
382# define REAL64_T double
386 typedef REAL64_T real64_T;
397# if defined(MW_LIBTOOLING)
401# define INT64_T int64_t
405# define UINT64_T uint64_t
407#if !defined(INT64_T) || !defined(UINT64_T) || !defined(FMT64)
408# if defined(__APPLE__) || defined(__clang__)
410# define INT64_T long long
413# define UINT64_T unsigned long long
418# if defined(__LP64__) && !defined(INT_TYPE_64_IS_LONG)
419# define INT_TYPE_64_IS_LONG
421# elif (defined(__x86_64__) || defined(__LP64__))&& !defined(__MINGW64__)
426# define UINT64_T unsigned long
431# if !defined(INT_TYPE_64_IS_LONG)
432# define INT_TYPE_64_IS_LONG
434# elif defined(_MSC_VER) || (defined(__BORLANDC__) && __BORLANDC__ >= 0x530) \
435 || (defined(__WATCOMC__) && __WATCOMC__ >= 1100)
437# define INT64_T __int64
440# define UINT64_T unsigned __int64
445# elif defined(__GNUC__) || defined(TMW_ENABLE_INT64) \
446 || defined(__LCC64__)
448# define INT64_T long long
451# define UINT64_T unsigned long long
461# if defined(__GNUC__) && \
462 ((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >=9)))
465 typedef INT64_T int64_T;
468#if defined(_WIN64) || (defined(__APPLE__) && defined(__LP64__)) \
469 || defined(__x86_64__) \
471# define INT_TYPE_64_IS_SUPPORTED
475# if defined(__GNUC__) && \
476 ((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >=9)))
479 typedef UINT64_T uint64_T;
487# if (defined( __GNUC__ ) || defined(_STDC_C99))&& !defined(__MINGW64__)
488# define FMT_SIZE_T "z"
489# elif defined (__WATCOMC__)
490# define FMT_SIZE_T "l"
491# elif defined (_WIN32 )
492# define FMT_SIZE_T "I"
494# define FMT_SIZE_T "l"
499# if defined(__APPLE__)
500# define FMT_PTRDIFF_T "l"
501# elif defined( __GNUC__ ) || defined(_STDC_C99)
502# define FMT_PTRDIFF_T "t"
503# elif defined (__WATCOMC__)
504# define FMT_PTRDIFF_T "l"
505# elif defined (_WIN32 )
506# define FMT_PTRDIFF_T "I"
508# define FMT_PTRDIFF_T "l"
527# define REAL_T real64_T
530# define REAL_T real32_T
535 typedef REAL_T real_T;
540# define TIME_T real_T
544 typedef TIME_T time_T;
551# define BOOLEAN_T UINT8_T
553# define BOOLEAN_T unsigned int
556typedef BOOLEAN_T boolean_T;
560# define CHARACTER_T char
562typedef CHARACTER_T char_T;
566# define INTEGER_T int
568typedef INTEGER_T int_T;
572# define UINTEGER_T unsigned
574typedef UINTEGER_T uint_T;
578# define BYTE_T unsigned char
580typedef BYTE_T byte_T;
593# define CREAL32_T creal32_T
602# define CREAL64_T creal64_T
611# define CREAL_T creal_T
622# define CINT8_T cint8_T
631# define CUINT8_T cuint8_T
640# define CINT16_T cint16_T
649# define CUINT16_T cuint16_T
658# define CINT32_T cint32_T
667# define CUINT32_T cuint32_T
676# define CINT64_T cint64_T
685# define CUINT64_T cuint64_T
695#define MAX_int8_T ((int8_T)(127))
696#define MIN_int8_T ((int8_T)(-128))
697#define MAX_uint8_T ((uint8_T)(255))
698#define MIN_uint8_T ((uint8_T)(0))
700#define MAX_int16_T ((int16_T)(32767))
701#define MIN_int16_T ((int16_T)(-32768))
702#define MAX_uint16_T ((uint16_T)(65535))
703#define MIN_uint16_T ((uint16_T)(0))
705#define MAX_int32_T ((int32_T)(2147483647))
706#define MIN_int32_T ((int32_T)(-2147483647-1))
707#define MAX_uint32_T ((uint32_T)(0xFFFFFFFFU))
708#define MIN_uint32_T ((uint32_T)(0))
710#if defined(_MSC_VER) || (defined(__BORLANDC__) && __BORLANDC__ >= 0x530) \
711 || (defined(__WATCOMC__) && __WATCOMC__ >= 1100) \
712 || defined(__LCC64__)
714# define MAX_int64_T ((int64_T)(9223372036854775807LL))
715# define MIN_int64_T ((int64_T)(-9223372036854775807LL-1LL))
718# define MAX_uint64_T ((uint64_T)(0xFFFFFFFFFFFFFFFFULL))
719# define MIN_uint64_T ((uint64_T)(0))
723# ifdef INT_TYPE_64_IS_LONG
724# define MAX_int64_T ((int64_T)(9223372036854775807L))
725# define MIN_int64_T ((int64_T)(-9223372036854775807L-1L))
727# define MAX_int64_T ((int64_T)(9223372036854775807LL))
728# define MIN_int64_T ((int64_T)(-9223372036854775807LL-1LL))
732# ifdef INT_TYPE_64_IS_LONG
733# define MAX_uint64_T ((uint64_T)(0xFFFFFFFFFFFFFFFFUL))
734# define MIN_uint64_T ((uint64_T)(0))
736# define MAX_uint64_T ((uint64_T)(0xFFFFFFFFFFFFFFFFULL))
737# define MIN_uint64_T ((uint64_T)(0))
742#if (defined(_MSC_VER) && !defined(__clang__))
752# define uint64_to_double(u) ( ((u) > _I64_MAX) ? \
753 (double)(__int64)((u) - _I64_MAX - 1) + (double)_I64_MAX + 1: \
754 (double)(__int64)(u) )
759uint64_T double_to_uint64_helper(
double d) {
760 union double_to_uint64_union_type {
765 return (((di.i64 & 0x000fffffffffffff) | 0x0010000000000000) << 11);
774# define double_to_uint64(d) ( ((d) >= 18446744073709551616.0) ? \
775 0xffffffffffffffffULL : \
777 ((d) >= 9223372036854775808.0) ? \
778 double_to_uint64_helper(d) : \
779 (unsigned __int64)(d) : \
782# define uint64_to_double(u) ((double)(u))
783# if defined(__BORLANDC__) || defined(__WATCOMC__) || defined(__TICCSC__)
786# define double_to_uint64(d) ( ((d) >= 18446744073709551616.0) ? \
787 (unsigned long long) 0xffffffffffffffffULL : \
788 ((d) >= 0) ? (unsigned long long)(d) : (unsigned long long) 0 )
792#if !defined(__cplusplus) && !defined(__bool_true_false_are_defined)
797typedef boolean_T bool;
814#if ((SCHAR_MIN + 1) != -SCHAR_MAX)
815#error "This code must be compiled using a 2's complement representation for signed integer values"
822#define TMW_NAME_LENGTH_MAX 64
832typedef int mwSignedIndex;
834typedef size_t mwSize;
835typedef size_t mwIndex;
836typedef ptrdiff_t mwSignedIndex;
840#ifndef SLSIZE_SLINDEX
841 #define SLSIZE_SLINDEX
842 #ifdef INT_TYPE_64_IS_SUPPORTED
843 typedef int64_T SLIndex;
844 typedef int64_T SLSize;
852#define SLIndexType size_t
853#define INVALID_SIZET_VALUE (std::numeric_limits<SLIndexType>::max())
854#define MAX_VALID_SIZET_VALUE (std::numeric_limits<SLIndexType>::max() -1)
857#if (defined(_LP64) || defined(_WIN64)) && !defined(MX_COMPAT_32)
859# define MWSIZE_MAX 281474976710655UL
860# define MWINDEX_MAX 281474976710655UL
861# define MWSINDEX_MAX 281474976710655L
862# define MWSINDEX_MIN -281474976710655L
864# define MWSIZE_MAX 2147483647UL
865# define MWINDEX_MAX 2147483647UL
866# define MWSINDEX_MAX 2147483647L
867# define MWSINDEX_MIN -2147483647L
869#define MWSIZE_MIN 0UL
870#define MWINDEX_MIN 0UL
874#if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_HAS_CHAR16_T_LANGUAGE_SUPPORT) && _HAS_CHAR16_T_LANGUAGE_SUPPORT)
875typedef char16_t CHAR16_T;
876#define U16_STRING_LITERAL_PREFIX u
877#elif defined(_MSC_VER)
878typedef wchar_t CHAR16_T;
879#define U16_STRING_LITERAL_PREFIX L
881typedef UINT16_T CHAR16_T;
Definition: tmwtypes.h:590
Definition: tmwtypes.h:599
Definition: tmwtypes.h:608