ICU 77.1  77.1
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
ptypes.h
Go to the documentation of this file.
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 ******************************************************************************
5 *
6 * Copyright (C) 1997-2012, International Business Machines
7 * Corporation and others. All Rights Reserved.
8 *
9 ******************************************************************************
10 *
11 * FILE NAME : ptypes.h
12 *
13 * Date Name Description
14 * 05/13/98 nos Creation (content moved here from ptypes.h).
15 * 03/02/99 stephen Added AS400 support.
16 * 03/30/99 stephen Added Linux support.
17 * 04/13/99 stephen Reworked for autoconf.
18 * 09/18/08 srl Moved basic types back to ptypes.h from platform.h
19 ******************************************************************************
20 */
21 
27 #ifndef _PTYPES_H
28 #define _PTYPES_H
29 
38 #ifndef __STDC_LIMIT_MACROS
39 #define __STDC_LIMIT_MACROS
40 #endif
41 
42 /* NULL, size_t, wchar_t */
43 #include <stddef.h>
44 
45 /* More platform-specific definitions. */
46 #include "unicode/platform.h"
47 
48 /*===========================================================================*/
49 /* Generic data types */
50 /*===========================================================================*/
51 
52 #include <stdint.h>
53 
54 // C++11 and C11 both specify that the data type char16_t should exist, C++11
55 // as a keyword and C11 as a typedef in the uchar.h header file, but not all
56 // implementations (looking at you, Apple, spring 2024) actually do this, so
57 // ICU4C must detect and deal with that.
58 #if !defined(__cplusplus) && !defined(U_IN_DOXYGEN)
59 # if U_HAVE_CHAR16_T
60 # include <uchar.h>
61 # else
62  typedef uint16_t char16_t;
63 # endif
64 #endif
65 
66 #endif /* _PTYPES_H */
Basic types for the platform.
C API: Unicode Properties.