remove \r
[extl.git] / extl / type / typedef.h
blobfed956679f4be6c31504bb188242615030d2a1f0
1 /* ///////////////////////////////////////////////////////////////////////
2 * File: typedef.h
4 * Created: 08.02.02
5 * Updated: 08.07.09
7 * Brief: The type definition
9 * [<Home>]
10 * Copyright (c) 2008-2020, Waruqi All rights reserved.
11 * //////////////////////////////////////////////////////////////////// */
12 #ifndef EXTL_TYPE_DEF_H
13 #define EXTL_TYPE_DEF_H
15 /* ///////////////////////////////////////////////////////////////////////
16 * Includes
18 #include "../config/config.h"
19 #include "../utility/static_assert.h"
21 /* ///////////////////////////////////////////////////////////////////////
22 * ::extl namespace
24 EXTL_BEGIN_NAMESPACE
26 /* 8-bit */
27 #ifdef EXTL_8BIT_INT_SUPPORT
28 typedef EXTL_SI08_BASE_TYPE e_int8_t;
29 typedef EXTL_SI08_BASE_TYPE e_sint8_t;
30 typedef EXTL_UI08_BASE_TYPE e_uint8_t;
31 typedef e_uint8_t e_byte_t;
32 #else
33 # error Extl requires 8-bit integer support.
34 #endif
36 /* 16-bit */
37 #ifdef EXTL_16BIT_INT_SUPPORT
38 typedef EXTL_SI16_BASE_TYPE e_int16_t;
39 typedef EXTL_SI16_BASE_TYPE e_sint16_t;
40 typedef EXTL_UI16_BASE_TYPE e_uint16_t;
41 #else
42 # error Extl requires 16-bit integer support.
43 #endif
45 /* 32-bit */
46 #ifdef EXTL_32BIT_INT_SUPPORT
47 typedef EXTL_SI32_BASE_TYPE e_int32_t;
48 typedef EXTL_SI32_BASE_TYPE e_sint32_t;
49 typedef EXTL_UI32_BASE_TYPE e_uint32_t;
50 #else
51 # error Extl requires 32-bit integer support.
52 #endif
54 /* 64-bit */
55 #ifdef EXTL_64BIT_INT_SUPPORT
56 typedef EXTL_SI64_BASE_TYPE e_int64_t;
57 typedef EXTL_SI64_BASE_TYPE e_sint64_t;
58 typedef EXTL_UI64_BASE_TYPE e_uint64_t;
59 #endif
61 typedef short e_short_t;
62 typedef int e_int_t;
63 typedef signed int e_sint_t;
64 typedef unsigned int e_uint_t;
65 typedef long e_long_t;
66 typedef unsigned long e_ulong_t;
68 /* e_bool_t */
69 #ifdef EXTL_NATIVE_BOOL_SUPPORT
70 typedef bool e_bool_t;
71 # define e_true_v (true)
72 # define e_false_v (false)
73 #else
74 typedef unsigned int e_bool_t;
75 # define e_true_v (1)
76 # define e_false_v (0)
77 #endif
79 /* e_float_t */
80 typedef double e_float_t;
82 /* e_wchar_t */
83 #if defined(EXTL_NATIVE_WCHAR_T_SUPPORT) || \
84 defined(EXTL_TYPEDEF_WCHAR_T_SUPPORT)
85 typedef wchar_t e_wchar_t;
86 #else
87 typedef unsigned short e_wchar_t;
88 #endif
90 /* e_char_t */
91 typedef char e_char_t;
93 /* e_tchar_t */
94 #ifdef EXTL_UNICODE
95 typedef e_wchar_t e_tchar_t;
96 #else
97 typedef e_char_t e_tchar_t;
98 #endif
100 /* e_size_t */
101 #ifdef _SIZE_T_DEFINED
102 typedef size_t e_size_t;
103 #else
104 typedef unsigned int e_size_t;
105 #endif
107 /* e_ptrdiff_t */
108 #ifdef _PTRDIFF_T_DEFINED
109 typedef ptrdiff_t e_ptrdiff_t;
110 #else
111 typedef int e_ptrdiff_t;
112 #endif
114 /* ///////////////////////////////////////////////////////////////////////
115 * Unit-testing
117 #ifdef EXTL_TYPE_SIZE_TEST_ENABLE
118 # include "unit_test/type_size_test.h"
119 #endif
121 /* ///////////////////////////////////////////////////////////////////////
122 * ::extl namespace
124 EXTL_END_NAMESPACE
126 /* //////////////////////////////////////////////////////////////////// */
127 #endif /* EXTL_TYPE_DEF_H */
128 /* //////////////////////////////////////////////////////////////////// */