26 #define TTK_STD_CXX __cplusplus
29 #if defined _MSC_VER && _MSC_VER >= 1800
31 # define TTK_STD_CXX 201103L
35 #if defined _MSC_VER && _MSC_VER >= 1910
37 # define TTK_STD_CXX 201402L
41 #if defined _MSC_VER && _MSC_VER >= 1920
43 # define TTK_STD_CXX 201703L
47 #if defined _MSC_VER && _MSC_VER >= 1930
49 # define TTK_STD_CXX 202002L
53 #if TTK_STD_CXX >= 202602L // c++2c
54 # define TTK_HAS_CXX11 1
55 # define TTK_HAS_CXX14 1
56 # define TTK_HAS_CXX17 1
57 # define TTK_HAS_CXX20 1
58 # define TTK_HAS_CXX23 1
59 # define TTK_HAS_CXX26 1
60 #elif TTK_STD_CXX >= 202302L // c++2b
61 # define TTK_HAS_CXX11 1
62 # define TTK_HAS_CXX14 1
63 # define TTK_HAS_CXX17 1
64 # define TTK_HAS_CXX20 1
65 # define TTK_HAS_CXX23 1
66 # define TTK_HAS_CXX26 0
67 #elif TTK_STD_CXX >= 202002L // c++2a
68 # define TTK_HAS_CXX11 1
69 # define TTK_HAS_CXX14 1
70 # define TTK_HAS_CXX17 1
71 # define TTK_HAS_CXX20 1
72 # define TTK_HAS_CXX23 0
73 # define TTK_HAS_CXX26 0
74 #elif TTK_STD_CXX >= 201703L // c++1z
75 # define TTK_HAS_CXX11 1
76 # define TTK_HAS_CXX14 1
77 # define TTK_HAS_CXX17 1
78 # define TTK_HAS_CXX20 0
79 # define TTK_HAS_CXX23 0
80 # define TTK_HAS_CXX26 0
81 #elif TTK_STD_CXX >= 201402L // c++1y
82 # define TTK_HAS_CXX11 1
83 # define TTK_HAS_CXX14 1
84 # define TTK_HAS_CXX17 0
85 # define TTK_HAS_CXX20 0
86 # define TTK_HAS_CXX23 0
87 # define TTK_HAS_CXX26 0
88 #elif TTK_STD_CXX >= 201103L // c++1x
89 # define TTK_HAS_CXX11 1
90 # define TTK_HAS_CXX14 0
91 # define TTK_HAS_CXX17 0
92 # define TTK_HAS_CXX20 0
93 # define TTK_HAS_CXX23 0
94 # define TTK_HAS_CXX26 0
96 # define TTK_HAS_CXX11 0
97 # define TTK_HAS_CXX14 0
98 # define TTK_HAS_CXX17 0
99 # define TTK_HAS_CXX20 0
100 # define TTK_HAS_CXX23 0
101 # define TTK_HAS_CXX26 0
173 # pragma GCC diagnostic ignored "-Wswitch"
174 # pragma GCC diagnostic ignored "-Wparentheses"
175 # pragma GCC diagnostic ignored "-Wunused-result"
176 # pragma GCC diagnostic ignored "-Wunused-function"
182 # define TTK_DEPRECATED __declspec(deprecated)
183 # define TTK_DEPRECATED_X(text) __declspec(deprecated(text))
185 # define TTK_DEPRECATED __attribute__((__deprecated__))
186 # define TTK_DEPRECATED_X(text) __attribute__((__deprecated__(text)))
191 #define TTK_UNUSED(x) (void)x;
194 # define TTK_DECL_UNUSED
196 # define TTK_DECL_UNUSED __attribute__((__unused__))
201 # define TTK_AUTO_GEN
211 # define TTKConstCast(x, y) (const_cast<x>(y))
213 # define TTKConstCast(x, y) ((x)(y))
217 # define TTKDynamicCast(x, y) (dynamic_cast<x>(y))
219 # define TTKDynamicCast(x, y) ((x)(y))
223 # define TTKReinterpretCast(x, y) (reinterpret_cast<x>(y))
225 # define TTKReinterpretCast(x, y) ((x)(y))
229 # define TTKStaticCast(x, y) (static_cast<x>(y))
231 # define TTKStaticCast(x, y) ((x)(y))
236 #define TTK_CAT(a, b) TTK_CAT_I(a, b)
237 #define TTK_CAT_I(a, b) a ## b
240 # define TTK_STR_CAT(...) TTK_PP_OVERLOAD(__TTK_STR_CAT__, __VA_ARGS__)(__VA_ARGS__)
242 # define TTK_STR_CAT(...) TTK_PP_CAT(TTK_PP_OVERLOAD(__TTK_STR_CAT__, __VA_ARGS__)(__VA_ARGS__), TTK_PP_EMPTY())
244 #define __TTK_STR_CAT__1(a) a
245 #define __TTK_STR_CAT__2(a, b) a b
246 #define __TTK_STR_CAT__3(a, b, c) a b c
247 #define __TTK_STR_CAT__4(a, b, c, d) a b c d
248 #define __TTK_STR_CAT__5(a, b, c, d, e) a b c d e
249 #define __TTK_STR_CAT__6(a, b, c, d, e, f) a b c d e f
251 #define TTK_STR_QUOTES(s) ("\"" + s + "\"")
255 #define TTK_PP_OVERLOAD(prefix, ...) TTK_PP_CAT(prefix, TTK_PP_VARIADIC_SIZE(__VA_ARGS__))
256 #define TTK_PP_CAT(a, b) TTK_CAT(a, b)
257 #define TTK_PP_EMPTY()
259 # define TTK_PP_VARIADIC_SIZE(...) TTK_PP_CAT(TTK_PP_VARIADIC_SIZE_I(__VA_ARGS__, 8, 7, 6, 5, 4, 3, 2, 1, ), )
261 # define TTK_PP_VARIADIC_SIZE(...) TTK_PP_VARIADIC_SIZE_I(__VA_ARGS__, 8, 7, 6, 5, 4, 3, 2, 1, )
263 #define TTK_PP_VARIADIC_SIZE_I(e0, e1, e2, e3, e4, e5, e6, e7, size, ...) size
267 #define TTK_DOTDOT ".."
268 #define TTK_SPACE " "
269 #define TTK_SEPARATOR "/"
270 #define TTK_WSEPARATOR "\\"
271 #define TTK_LINEFEED "\n"
272 #define TTK_WLINEFEED "\r\n"
273 #define TTK_PARENT_DIR TTK_STR_CAT(TTK_DOTDOT, TTK_SEPARATOR)
275 #define TTK_SPLITER "*|||*"
276 #define TTK_DEFAULT_STR "-"
277 #define TTK_NAN_STR "NaN"
278 #define TTK_NULL_STR "null"
281 #define URL_PREFIX "://"
282 #define HTTP_PROTOCOL_PREFIX "http"
283 #define HTTPS_PROTOCOL_PREFIX "https"
285 #define HTTP_PROTOCOL TTK_STR_CAT(HTTP_PROTOCOL_PREFIX, URL_PREFIX)
286 #define HTTPS_PROTOCOL TTK_STR_CAT(HTTPS_PROTOCOL_PREFIX, URL_PREFIX)
289 #define SHL_FILE_SUFFIX "sh"
290 #define EXE_FILE_SUFFIX "exe"
291 #define COM_FILE_SUFFIX "com"
293 #define SHL_FILE TTK_STR_CAT(TTK_DOT, SHL_FILE_SUFFIX)
294 #define EXE_FILE TTK_STR_CAT(TTK_DOT, EXE_FILE_SUFFIX)
295 #define COM_FILE TTK_STR_CAT(TTK_DOT, COM_FILE_SUFFIX)
299 #define TTK_TIME_INIT "00:00"
300 #define TTK_HOUR_FORMAT "hh"
301 #define TTK_SECOND_FORMAT "mm"
302 #define TTK_TIMEM_FORMAT "hh:mm"
303 #define TTK_TIMES_FORMAT "hh:mm:ss"
304 #define TTK_TIMEZ_FORMAT "hh:mm:ss:zzz"
305 #define TTK_YEAR_FORMAT "yyyy"
306 #define TTK_MONTH_FORMAT "MM"
307 #define TTK_DAY_FORMAT "dd"
308 #define TTK_WEEK_FORMAT "dddd"
309 #define TTK_DATE_FORMAT "yyyy-MM-dd"
310 #define TTK_DATE2_FORMAT "yyyy.MM.dd"
311 #define TTK_DATE_TIMEM_FORMAT "yyyy-MM-dd hh:mm"
312 #define TTK_DATE_TIMES_FORMAT "yyyy-MM-dd hh:mm:ss"
313 #define TTK_DATE_TIMEZ_FORMAT "yyyy-MM-dd hh:mm:ss:zzz"
317 #define TTK_ITEM_SIZE_3XS 5
318 #define TTK_ITEM_SIZE_2XS 10
319 #define TTK_ITEM_SIZE_XS 18
320 #define TTK_ITEM_SIZE_S 25
321 #define TTK_ITEM_SIZE_M 30
322 #define TTK_ITEM_SIZE_L 40
323 #define TTK_ITEM_SIZE_XL 50
324 #define TTK_ITEM_SIZE_2XL 60
325 #define TTK_ITEM_SIZE_3XL 75
326 #define TTK_ITEM_SIZE_4XL 90
327 #define TTK_ITEM_SIZE_5XL 105
331 #define TTK_NONE_LEVEL -3
332 #define TTK_LOW_LEVEL -2
333 #define TTK_NORMAL_LEVEL -1
334 #define TTK_HIGH_LEVEL 999
338 #define TTK_LOW_BUFFER 256
339 #define TTK_NORMAL_BUFFER 512
340 #define TTK_HIGH_BUFFER 1024
347 #define TTK_DN_US2NS 1000
350 #define TTK_DN_MS2US 1000
351 #define TTK_DN_MS2NS (TTK_DN_MS2US * TTK_DN_US2NS)
352 #define TTK_DN_ONCE (50 * TTK_DN_MS)
355 #define TTK_DN_S2MS 1000
356 #define TTK_DN_S2US (TTK_DN_S2MS * TTK_DN_MS2US)
357 #define TTK_DN_S2NS (TTK_DN_S2US * TTK_DN_US2NS)
360 #define TTK_DN_M2S 60
361 #define TTK_DN_M2MS (TTK_DN_M2S * TTK_DN_S2MS)
362 #define TTK_DN_M2US TTKInt64(TTK_DN_M2MS * TTK_DN_MS2US)
363 #define TTK_DN_M2NS TTKInt64(TTK_DN_M2US * TTK_DN_US2NS)
366 #define TTK_DN_H2M 60
367 #define TTK_DN_H2S (TTK_DN_H2M * TTK_DN_M2S)
368 #define TTK_DN_H2MS (TTK_DN_H2S * TTK_DN_S2MS)
369 #define TTK_DN_H2US TTKInt64(TTK_DN_H2MS * TTK_DN_MS2US)
370 #define TTK_DN_H2NS TTKInt64(TTK_DN_H2US * TTK_DN_US2NS)
373 #define TTK_DN_D2H 24
374 #define TTK_DN_D2M (TTK_DN_D2H * TTK_DN_H2M)
375 #define TTK_DN_D2S (TTK_DN_D2M * TTK_DN_M2S)
376 #define TTK_DN_D2MS TTKInt64(TTK_DN_D2S * TTK_DN_S2MS)
377 #define TTK_DN_D2US TTKInt64(TTK_DN_D2MS * TTK_DN_MS2US)
378 #define TTK_DN_D2NS TTKInt64(TTK_DN_D2US * TTK_DN_US2NS)
385 #define TTK_SN_B2BT 8
388 #define TTK_SN_KB2B 1024
389 #define TTK_SN_KB2BS (TTK_SN_KB2B * TTK_SN_B2BT)
392 #define TTK_SN_MB2KB 1024
393 #define TTK_SN_MB2B (TTK_SN_MB2KB * TTK_SN_KB2B)
394 #define TTK_SN_MB2BT (TTK_SN_MB2B * TTK_SN_B2BT)
397 #define TTK_SN_GB2MB 1024
398 #define TTK_SN_GB2KB (TTK_SN_GB2MB * TTK_SN_MB2KB)
399 #define TTK_SN_GB2B TTKInt64(TTK_SN_GB2KB * TTK_SN_KB2B)
400 #define TTK_SN_GB2BT TTKInt64(TTK_SN_GB2B * TTK_SN_B2BT)
403 #define TTK_SN_TB2GB 1024
404 #define TTK_SN_TB2MB (TTK_SN_TB2GB * TTK_SN_GB2MB)
405 #define TTK_SN_TB2KB TTKInt64(TTK_SN_TB2MB * TTK_SN_MB2KB)
406 #define TTK_SN_TB2B TTKInt64(TTK_SN_TB2KB * TTK_SN_KB2B)
407 #define TTK_SN_TB2BT TTKInt64(TTK_SN_TB2B * TTK_SN_B2BT)
416 #define TTK_AN_120 120
417 #define TTK_AN_150 150
418 #define TTK_AN_180 180
419 #define TTK_AN_270 270
420 #define TTK_AN_360 360
428 #define TTK_BN_128 128
429 #define TTK_BN_192 192
430 #define TTK_BN_250 250
431 #define TTK_BN_320 320
432 #define TTK_BN_500 500
433 #define TTK_BN_750 750
434 #define TTK_BN_1000 1000
439 #define TTK_RN_MAX 100
441 #endif // TTKGLOBAL_H
TTKUInt32 *const TTKUIn32CPtr
const TTKInt16 *const TTKCInt16CPtr
TTKInt8 *const TTKInt8CPtr
TTKUInt8 *const TTKUInt8CPtr
const TTKUInt16 * TTKCUInt16Ptr
TTKInt64 *const TTKInt64CPtr
const TTKInt64 *const TTKCInt64CPtr
TTKInt16 *const TTKInt16CPtr
const TTKUInt8 * TTKCUInt8Ptr
const TTKUInt16 *const TTKCUInt16CPtr
unsigned long long TTKUInt64
TTKInt32 *const TTKIn32CPtr
const TTKInt32 *const TTKCIn32CPtr
typedef int(ZCALLBACK *close_file_func) OF((voidpf opaque
const TTKInt32 * TTKCIn32Ptr
const char *const TTKCStrCPtr
TTKUInt64 *const TTKUInt64CPtr
const TTKUInt64 *const TTKCUInt64CPtr
const TTKInt8 * TTKCInt8Ptr
const TTKInt16 * TTKCInt16Ptr
typedef long(ZCALLBACK *tell_file_func) OF((voidpf opaque
const TTKUInt8 *const TTKCUInt8CPtr
const TTKUInt32 *const TTKCUIn32CPtr
const void *const TTKCVoidCPtr
const TTKUInt32 * TTKCUIn32Ptr
const TTKUInt64 * TTKCUInt64Ptr
const TTKInt64 * TTKCInt64Ptr
TTKUInt16 *const TTKUInt16CPtr
const TTKInt8 *const TTKCInt8CPtr