[CLT2012]
[reactos.git] / include / c++ / cwchar
1 // C++ wchar forwarding header
2
3 #pragma once
4
5 #include <cstddef>
6
7 #include <wchar.h>
8
9 namespace std
10 {
11 using ::mbstate_t;
12 }
13
14 // Get rid of those macros defined in <wchar.h> in lieu of real functions.
15 #undef btowc
16 #undef fgetwc
17 #undef fgetws
18 #undef fputwc
19 #undef fputws
20 #undef fwide
21 #undef fwprintf
22 #undef fwscanf
23 #undef getwc
24 #undef getwchar
25 #undef mbrlen
26 #undef mbrtowc
27 #undef mbsinit
28 #undef mbsrtowcs
29 #undef putwc
30 #undef putwchar
31 #undef swprintf
32 #undef swscanf
33 #undef ungetwc
34 #undef vfwprintf
35 #undef vfwscanf
36 #undef vswprintf
37 #undef vswscanf
38 #undef vwprintf
39 #undef vwscanf
40 #undef wcrtomb
41 #undef wcscat
42 #undef wcschr
43 #undef wcscmp
44 #undef wcscoll
45 #undef wcscpy
46 #undef wcscspn
47 #undef wcsftime
48 #undef wcslen
49 #undef wcsncat
50 #undef wcsncmp
51 #undef wcsncpy
52 #undef wcspbrk
53 #undef wcsrchr
54 #undef wcsrtombs
55 #undef wcsspn
56 #undef wcsstr
57 #undef wcstod
58 #undef wcstof
59 #undef wcstok
60 #undef wcstol
61 #undef wcstoul
62 #undef wcsxfrm
63 #undef wctob
64 #undef wmemchr
65 #undef wmemcmp
66 #undef wmemcpy
67 #undef wmemmove
68 #undef wmemset
69 #undef wprintf
70 #undef wscanf
71
72 namespace std
73 {
74 using ::wint_t;
75
76 using ::btowc;
77 using ::fgetwc;
78 using ::fgetws;
79 using ::fputwc;
80 using ::fputws;
81 using ::fwide;
82 using ::fwprintf;
83 using ::fwscanf;
84 using ::getwc;
85 using ::getwchar;
86 using ::mbrlen;
87 using ::mbrtowc;
88 using ::mbsinit;
89 using ::mbsrtowcs;
90 using ::putwc;
91 using ::putwchar;
92 using ::swprintf;
93 using ::swscanf;
94 using ::ungetwc;
95 using ::vfwprintf;
96 using ::vfwscanf;
97 using ::vswprintf;
98 using ::vswscanf;
99 using ::vwprintf;
100 using ::vwscanf;
101 using ::wcrtomb;
102 using ::wcscat;
103 using ::wcscmp;
104 using ::wcscoll;
105 using ::wcscpy;
106 using ::wcscspn;
107 using ::wcsftime;
108 using ::wcslen;
109 using ::wcsncat;
110 using ::wcsncmp;
111 using ::wcsncpy;
112 using ::wcsrtombs;
113 using ::wcsspn;
114 using ::wcstod;
115 using ::wcstof;
116 using ::wcstok;
117 using ::wcstol;
118 using ::wcstoul;
119 using ::wcsxfrm;
120 using ::wctob;
121 using ::wmemcmp;
122 using ::wmemcpy;
123 using ::wmemmove;
124 using ::wmemset;
125 using ::wprintf;
126 using ::wscanf;
127 using ::wcschr;
128 using ::wcspbrk;
129 using ::wcsrchr;
130 using ::wcsstr;
131 using ::wmemchr;
132
133 inline wchar_t*
134 wcschr(wchar_t* __p, wchar_t __c)
135 { return wcschr(const_cast<const wchar_t*>(__p), __c); }
136
137 inline wchar_t*
138 wcspbrk(wchar_t* __s1, const wchar_t* __s2)
139 { return wcspbrk(const_cast<const wchar_t*>(__s1), __s2); }
140
141 inline wchar_t*
142 wcsrchr(wchar_t* __p, wchar_t __c)
143 { return wcsrchr(const_cast<const wchar_t*>(__p), __c); }
144
145 inline wchar_t*
146 wcsstr(wchar_t* __s1, const wchar_t* __s2)
147 { return wcsstr(const_cast<const wchar_t*>(__s1), __s2); }
148
149 inline wchar_t*
150 wmemchr(wchar_t* __p, wchar_t __c, size_t __n)
151 { return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); }
152 }