stdint.h

Engine/source/persistence/rapidjson/msinttypes/stdint.h

More...

Public Defines

define
_W64() 
define
INT16_C(val) val##i16
define
INT16_MAX() _I16_MAX
define
INT16_MIN() (()_I16_MIN)
define
INT32_C(val) val##i32
define
INT32_MAX() _I32_MAX
define
INT32_MIN() (()_I32_MIN)
define
INT64_C(val) val##i64
define
INT64_MAX() _I64_MAX
define
INT64_MIN() (()_I64_MIN)
define
INT8_C(val) val##i8
define
INT8_MAX() _I8_MAX
define
INT8_MIN() (()_I8_MIN)
define
define
define
define
define
define
define
define
PTRDIFF_MAX() _I32_MAX
define
PTRDIFF_MIN() _I32_MIN
define
SIG_ATOMIC_MAX() INT_MAX
define
SIG_ATOMIC_MIN() INT_MIN
define
SIZE_MAX() _UI32_MAX
define
UINT16_C(val) val##ui16
define
UINT16_MAX() _UI16_MAX
define
UINT32_C(val) val##ui32
define
UINT32_MAX() _UI32_MAX
define
UINT64_C(val) val##ui64
define
UINT64_MAX() _UI64_MAX
define
UINT8_C(val) val##ui8
define
UINT8_MAX() _UI8_MAX
define
define
define
define
WCHAR_MAX() _UI16_MAX
define
define
WINT_MAX() _UI16_MAX
define

Public Typedefs

signed short
int16_t 
signed int
int32_t 
signed __int64
int64_t 
signed char
int8_t 
int_fast16_t 
int_fast32_t 
int_fast64_t 
int_fast8_t 
int_least16_t 
int_least32_t 
int_least64_t 
int_least8_t 
intmax_t 
_W64 signed int
intptr_t 
unsigned short
uint16_t 
unsigned int
uint32_t 
unsigned __int64
uint64_t 
unsigned char
uint8_t 
uint_fast16_t 
uint_fast32_t 
uint_fast64_t 
uint_fast8_t 
uint_least16_t 
uint_least32_t 
uint_least64_t 
uint_least8_t 
uintmax_t 
_W64 unsigned int
uintptr_t 

Detailed Description

Public Defines

_W64() 
INT16_C(val) val##i16
INT16_MAX() _I16_MAX
INT16_MIN() (()_I16_MIN)
INT32_C(val) val##i32
INT32_MAX() _I32_MAX
INT32_MIN() (()_I32_MIN)
INT64_C(val) val##i64
INT64_MAX() _I64_MAX
INT64_MIN() (()_I64_MIN)
INT8_C(val) val##i8
INT8_MAX() _I8_MAX
INT8_MIN() (()_I8_MIN)
INT_FAST16_MAX() 
INT_FAST16_MIN() 
INT_FAST32_MAX() 
INT_FAST32_MIN() 
INT_FAST64_MAX() 
INT_FAST64_MIN() 
INT_FAST8_MAX() 
INT_FAST8_MIN() 
INT_LEAST16_MAX() 
INT_LEAST16_MIN() 
INT_LEAST32_MAX() 
INT_LEAST32_MIN() 
INT_LEAST64_MAX() 
INT_LEAST64_MIN() 
INT_LEAST8_MAX() 
INT_LEAST8_MIN() 
INTMAX_C() 
INTMAX_MAX() 
INTMAX_MIN() 
INTPTR_MAX() 
INTPTR_MIN() 
PTRDIFF_MAX() _I32_MAX
PTRDIFF_MIN() _I32_MIN
SIG_ATOMIC_MAX() INT_MAX
SIG_ATOMIC_MIN() INT_MIN
SIZE_MAX() _UI32_MAX
UINT16_C(val) val##ui16
UINT16_MAX() _UI16_MAX
UINT32_C(val) val##ui32
UINT32_MAX() _UI32_MAX
UINT64_C(val) val##ui64
UINT64_MAX() _UI64_MAX
UINT8_C(val) val##ui8
UINT8_MAX() _UI8_MAX
UINT_FAST16_MAX() 
UINT_FAST32_MAX() 
UINT_FAST64_MAX() 
UINT_FAST8_MAX() 
UINT_LEAST16_MAX() 
UINT_LEAST32_MAX() 
UINT_LEAST64_MAX() 
UINT_LEAST8_MAX() 
UINTMAX_C() 
UINTMAX_MAX() 
UINTPTR_MAX() 
WCHAR_MAX() _UI16_MAX
WCHAR_MIN() 0
WINT_MAX() _UI16_MAX
WINT_MIN() 0

Public Typedefs

typedef signed short int16_t 
typedef signed int int32_t 
typedef signed __int64 int64_t 
typedef signed char int8_t 
typedef int16_t int_fast16_t 
typedef int32_t int_fast32_t 
typedef int64_t int_fast64_t 
typedef int8_t int_fast8_t 
typedef int16_t int_least16_t 
typedef int32_t int_least32_t 
typedef int64_t int_least64_t 
typedef int8_t int_least8_t 
typedef int64_t intmax_t 
typedef _W64 signed int intptr_t 
typedef unsigned short uint16_t 
typedef unsigned int uint32_t 
typedef unsigned __int64 uint64_t 
typedef unsigned char uint8_t 
typedef uint16_t uint_fast16_t 
typedef uint32_t uint_fast32_t 
typedef uint64_t uint_fast64_t 
typedef uint8_t uint_fast8_t 
typedef uint16_t uint_least16_t 
typedef uint32_t uint_least32_t 
typedef uint64_t uint_least64_t 
typedef uint8_t uint_least8_t 
typedef uint64_t uintmax_t 
typedef _W64 unsigned int uintptr_t 
  1
  2// ISO C9x  compliant stdint.h for Microsoft Visual Studio
  3// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 
  4// 
  5//  Copyright (c) 2006-2013 Alexander Chemeris
  6// 
  7// Redistribution and use in source and binary forms, with or without
  8// modification, are permitted provided that the following conditions are met:
  9// 
 10//   1. Redistributions of source code must retain the above copyright notice,
 11//      this list of conditions and the following disclaimer.
 12// 
 13//   2. Redistributions in binary form must reproduce the above copyright
 14//      notice, this list of conditions and the following disclaimer in the
 15//      documentation and/or other materials provided with the distribution.
 16// 
 17//   3. Neither the name of the product nor the names of its contributors may
 18//      be used to endorse or promote products derived from this software
 19//      without specific prior written permission.
 20// 
 21// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
 22// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 23// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
 24// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 25// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 26// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
 27// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
 28// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 29// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 30// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 31// 
 32///////////////////////////////////////////////////////////////////////////////
 33
 34// The above software in this distribution may have been modified by 
 35// THL A29 Limited ("Tencent Modifications"). 
 36// All Tencent Modifications are Copyright (C) 2015 THL A29 Limited.
 37
 38#ifndef _MSC_VER // [
 39#error "Use this header only with Microsoft Visual C++ compilers!"
 40#endif // _MSC_VER ]
 41
 42#ifndef _MSC_STDINT_H_ // [
 43#define _MSC_STDINT_H_
 44
 45#if _MSC_VER > 1000
 46#pragma once
 47#endif
 48
 49// miloyip: Originally Visual Studio 2010 uses its own stdint.h. However it generates warning with INT64_C(), so change to use this file for vs2010.
 50#if _MSC_VER >= 1600 // [
 51#include <stdint.h>
 52
 53#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [   See footnote 224 at page 260
 54
 55#undef INT8_C
 56#undef INT16_C
 57#undef INT32_C
 58#undef INT64_C
 59#undef UINT8_C
 60#undef UINT16_C
 61#undef UINT32_C
 62#undef UINT64_C
 63
 64// 7.18.4.1 Macros for minimum-width integer constants
 65
 66#define INT8_C(val)  val##i8
 67#define INT16_C(val) val##i16
 68#define INT32_C(val) val##i32
 69#define INT64_C(val) val##i64
 70
 71#define UINT8_C(val)  val##ui8
 72#define UINT16_C(val) val##ui16
 73#define UINT32_C(val) val##ui32
 74#define UINT64_C(val) val##ui64
 75
 76// 7.18.4.2 Macros for greatest-width integer constants
 77// These #ifndef's are needed to prevent collisions with <boost/cstdint.hpp>.
 78// Check out Issue 9 for the details.
 79#ifndef INTMAX_C //   [
 80#  define INTMAX_C   INT64_C
 81#endif // INTMAX_C    ]
 82#ifndef UINTMAX_C //  [
 83#  define UINTMAX_C  UINT64_C
 84#endif // UINTMAX_C   ]
 85
 86#endif // __STDC_CONSTANT_MACROS ]
 87
 88#else // ] _MSC_VER >= 1700 [
 89
 90#include <limits.h>
 91
 92// For Visual Studio 6 in C++ mode and for many Visual Studio versions when
 93// compiling for ARM we have to wrap <wchar.h> include with 'extern "C++" {}'
 94// or compiler would give many errors like this:
 95//   error C2733: second C linkage of overloaded function 'wmemchr' not allowed
 96#if defined(__cplusplus) && !defined(_M_ARM)
 97extern "C" {
 98#endif
 99#  include <wchar.h>
100#if defined(__cplusplus) && !defined(_M_ARM)
101}
102#endif
103
104// Define _W64 macros to mark types changing their size, like intptr_t.
105#ifndef _W64
106#  if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300
107#     define _W64 __w64
108#  else
109#     define _W64
110#  endif
111#endif
112
113
114// 7.18.1 Integer types
115
116// 7.18.1.1 Exact-width integer types
117
118// Visual Studio 6 and Embedded Visual C++ 4 doesn't
119// realize that, e.g. char has the same size as __int8
120// so we give up on __intX for them.
121#if (_MSC_VER < 1300)
122   typedef signed char       int8_t;
123   typedef signed short      int16_t;
124   typedef signed int        int32_t;
125   typedef unsigned char     uint8_t;
126   typedef unsigned short    uint16_t;
127   typedef unsigned int      uint32_t;
128#else
129   typedef signed __int8     int8_t;
130   typedef signed __int16    int16_t;
131   typedef signed __int32    int32_t;
132   typedef unsigned __int8   uint8_t;
133   typedef unsigned __int16  uint16_t;
134   typedef unsigned __int32  uint32_t;
135#endif
136typedef signed __int64       int64_t;
137typedef unsigned __int64     uint64_t;
138
139
140// 7.18.1.2 Minimum-width integer types
141typedef int8_t    int_least8_t;
142typedef int16_t   int_least16_t;
143typedef int32_t   int_least32_t;
144typedef int64_t   int_least64_t;
145typedef uint8_t   uint_least8_t;
146typedef uint16_t  uint_least16_t;
147typedef uint32_t  uint_least32_t;
148typedef uint64_t  uint_least64_t;
149
150// 7.18.1.3 Fastest minimum-width integer types
151typedef int8_t    int_fast8_t;
152typedef int16_t   int_fast16_t;
153typedef int32_t   int_fast32_t;
154typedef int64_t   int_fast64_t;
155typedef uint8_t   uint_fast8_t;
156typedef uint16_t  uint_fast16_t;
157typedef uint32_t  uint_fast32_t;
158typedef uint64_t  uint_fast64_t;
159
160// 7.18.1.4 Integer types capable of holding object pointers
161#ifdef _WIN64 // [
162   typedef signed __int64    intptr_t;
163   typedef unsigned __int64  uintptr_t;
164#else // _WIN64 ][
165   typedef _W64 signed int   intptr_t;
166   typedef _W64 unsigned int uintptr_t;
167#endif // _WIN64 ]
168
169// 7.18.1.5 Greatest-width integer types
170typedef int64_t   intmax_t;
171typedef uint64_t  uintmax_t;
172
173
174// 7.18.2 Limits of specified-width integer types
175
176#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [   See footnote 220 at page 257 and footnote 221 at page 259
177
178// 7.18.2.1 Limits of exact-width integer types
179#define INT8_MIN     ((int8_t)_I8_MIN)
180#define INT8_MAX     _I8_MAX
181#define INT16_MIN    ((int16_t)_I16_MIN)
182#define INT16_MAX    _I16_MAX
183#define INT32_MIN    ((int32_t)_I32_MIN)
184#define INT32_MAX    _I32_MAX
185#define INT64_MIN    ((int64_t)_I64_MIN)
186#define INT64_MAX    _I64_MAX
187#define UINT8_MAX    _UI8_MAX
188#define UINT16_MAX   _UI16_MAX
189#define UINT32_MAX   _UI32_MAX
190#define UINT64_MAX   _UI64_MAX
191
192// 7.18.2.2 Limits of minimum-width integer types
193#define INT_LEAST8_MIN    INT8_MIN
194#define INT_LEAST8_MAX    INT8_MAX
195#define INT_LEAST16_MIN   INT16_MIN
196#define INT_LEAST16_MAX   INT16_MAX
197#define INT_LEAST32_MIN   INT32_MIN
198#define INT_LEAST32_MAX   INT32_MAX
199#define INT_LEAST64_MIN   INT64_MIN
200#define INT_LEAST64_MAX   INT64_MAX
201#define UINT_LEAST8_MAX   UINT8_MAX
202#define UINT_LEAST16_MAX  UINT16_MAX
203#define UINT_LEAST32_MAX  UINT32_MAX
204#define UINT_LEAST64_MAX  UINT64_MAX
205
206// 7.18.2.3 Limits of fastest minimum-width integer types
207#define INT_FAST8_MIN    INT8_MIN
208#define INT_FAST8_MAX    INT8_MAX
209#define INT_FAST16_MIN   INT16_MIN
210#define INT_FAST16_MAX   INT16_MAX
211#define INT_FAST32_MIN   INT32_MIN
212#define INT_FAST32_MAX   INT32_MAX
213#define INT_FAST64_MIN   INT64_MIN
214#define INT_FAST64_MAX   INT64_MAX
215#define UINT_FAST8_MAX   UINT8_MAX
216#define UINT_FAST16_MAX  UINT16_MAX
217#define UINT_FAST32_MAX  UINT32_MAX
218#define UINT_FAST64_MAX  UINT64_MAX
219
220// 7.18.2.4 Limits of integer types capable of holding object pointers
221#ifdef _WIN64 // [
222#  define INTPTR_MIN   INT64_MIN
223#  define INTPTR_MAX   INT64_MAX
224#  define UINTPTR_MAX  UINT64_MAX
225#else // _WIN64 ][
226#  define INTPTR_MIN   INT32_MIN
227#  define INTPTR_MAX   INT32_MAX
228#  define UINTPTR_MAX  UINT32_MAX
229#endif // _WIN64 ]
230
231// 7.18.2.5 Limits of greatest-width integer types
232#define INTMAX_MIN   INT64_MIN
233#define INTMAX_MAX   INT64_MAX
234#define UINTMAX_MAX  UINT64_MAX
235
236// 7.18.3 Limits of other integer types
237
238#ifdef _WIN64 // [
239#  define PTRDIFF_MIN  _I64_MIN
240#  define PTRDIFF_MAX  _I64_MAX
241#else  // _WIN64 ][
242#  define PTRDIFF_MIN  _I32_MIN
243#  define PTRDIFF_MAX  _I32_MAX
244#endif  // _WIN64 ]
245
246#define SIG_ATOMIC_MIN  INT_MIN
247#define SIG_ATOMIC_MAX  INT_MAX
248
249#ifndef SIZE_MAX // [
250#  ifdef _WIN64 // [
251#     define SIZE_MAX  _UI64_MAX
252#  else // _WIN64 ][
253#     define SIZE_MAX  _UI32_MAX
254#  endif // _WIN64 ]
255#endif // SIZE_MAX ]
256
257// WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h>
258#ifndef WCHAR_MIN // [
259#  define WCHAR_MIN  0
260#endif  // WCHAR_MIN ]
261#ifndef WCHAR_MAX // [
262#  define WCHAR_MAX  _UI16_MAX
263#endif  // WCHAR_MAX ]
264
265#define WINT_MIN  0
266#define WINT_MAX  _UI16_MAX
267
268#endif // __STDC_LIMIT_MACROS ]
269
270
271// 7.18.4 Limits of other integer types
272
273#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [   See footnote 224 at page 260
274
275// 7.18.4.1 Macros for minimum-width integer constants
276
277#define INT8_C(val)  val##i8
278#define INT16_C(val) val##i16
279#define INT32_C(val) val##i32
280#define INT64_C(val) val##i64
281
282#define UINT8_C(val)  val##ui8
283#define UINT16_C(val) val##ui16
284#define UINT32_C(val) val##ui32
285#define UINT64_C(val) val##ui64
286
287// 7.18.4.2 Macros for greatest-width integer constants
288// These #ifndef's are needed to prevent collisions with <boost/cstdint.hpp>.
289// Check out Issue 9 for the details.
290#ifndef INTMAX_C //   [
291#  define INTMAX_C   INT64_C
292#endif // INTMAX_C    ]
293#ifndef UINTMAX_C //  [
294#  define UINTMAX_C  UINT64_C
295#endif // UINTMAX_C   ]
296
297#endif // __STDC_CONSTANT_MACROS ]
298
299#endif // _MSC_VER >= 1600 ]
300
301#endif // _MSC_STDINT_H_ ]
302