Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4680 | right-hear | 1 | // -*- C++ -*- forwarding header. |
2 | |||
3 | // Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. |
||
4 | // |
||
5 | // This file is part of the GNU ISO C++ Library. This library is free |
||
6 | // software; you can redistribute it and/or modify it under the |
||
7 | // terms of the GNU General Public License as published by the |
||
8 | // Free Software Foundation; either version 2, or (at your option) |
||
9 | // any later version. |
||
10 | |||
11 | // This library is distributed in the hope that it will be useful, |
||
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of |
||
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||
14 | // GNU General Public License for more details. |
||
15 | |||
16 | // You should have received a copy of the GNU General Public License along |
||
17 | // with this library; see the file COPYING. If not, write to the Free |
||
18 | // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
||
19 | // USA. |
||
20 | |||
21 | // As a special exception, you may use this file as part of a free software |
||
22 | // library without restriction. Specifically, if other files instantiate |
||
23 | // templates or use macros or inline functions from this file, or you compile |
||
24 | // this file and link it with other files to produce an executable, this |
||
25 | // file does not by itself cause the resulting executable to be covered by |
||
26 | // the GNU General Public License. This exception does not however |
||
27 | // invalidate any other reasons why the executable file might be covered by |
||
28 | // the GNU General Public License. |
||
29 | |||
30 | // |
||
31 | // ISO C++ 14882: ??? |
||
32 | // |
||
33 | |||
34 | #ifndef _CPP_CWCHAR |
||
35 | #define _CPP_CWCHAR 1 |
||
36 | |||
37 | #include |
||
38 | #include |
||
39 | |||
40 | #if _GLIBCPP_HAVE_WCHAR_H |
||
41 | #pragma GCC system_header |
||
42 | #include_next |
||
43 | #endif |
||
44 | |||
45 | // Need to do a bit of trickery here with mbstate_t as char_traits |
||
46 | // assumes it is in wchar.h, regardless of wchar_t specializations. |
||
47 | #ifndef _GLIBCPP_HAVE_MBSTATE_T |
||
48 | extern "C" |
||
49 | { |
||
50 | typedef struct |
||
51 | { |
||
52 | int __fill[6]; |
||
53 | } mbstate_t; |
||
54 | } |
||
55 | #endif |
||
56 | |||
57 | namespace std |
||
58 | { |
||
59 | using ::mbstate_t; |
||
60 | } |
||
61 | |||
62 | // Get rid of those macros defined in |
||
63 | #undef btowc |
||
64 | #undef fgetwc |
||
65 | #undef fgetws |
||
66 | #undef fputwc |
||
67 | #undef fputws |
||
68 | #undef fwide |
||
69 | #undef fwprintf |
||
70 | #undef fwscanf |
||
71 | #undef getwc |
||
72 | #undef getwchar |
||
73 | #undef mbrlen |
||
74 | #undef mbrtowc |
||
75 | #undef mbsinit |
||
76 | #undef mbsrtowcs |
||
77 | #undef putwc |
||
78 | #undef putwchar |
||
79 | #undef swprintf |
||
80 | #undef swscanf |
||
81 | #undef ungetwc |
||
82 | #undef vfwprintf |
||
83 | #undef vfwscanf |
||
84 | #undef vswprintf |
||
85 | #undef vswscanf |
||
86 | #undef vwprintf |
||
87 | #undef vwscanf |
||
88 | #undef wcrtomb |
||
89 | #undef wcscat |
||
90 | #undef wcschr |
||
91 | #undef wcscmp |
||
92 | #undef wcscoll |
||
93 | #undef wcscpy |
||
94 | #undef wcscspn |
||
95 | #undef wcsftime |
||
96 | #undef wcslen |
||
97 | #undef wcsncat |
||
98 | #undef wcsncmp |
||
99 | #undef wcsncpy |
||
100 | #undef wcspbrk |
||
101 | #undef wcsrchr |
||
102 | #undef wcsrtombs |
||
103 | #undef wcsspn |
||
104 | #undef wcsstr |
||
105 | #undef wcstod |
||
106 | #undef wcstof |
||
107 | #undef wcstok |
||
108 | #undef wcstol |
||
109 | #undef wcstoul |
||
110 | #undef wcsxfrm |
||
111 | #undef wctob |
||
112 | #undef wmemchr |
||
113 | #undef wmemcmp |
||
114 | #undef wmemcpy |
||
115 | #undef wmemmove |
||
116 | #undef wmemset |
||
117 | #undef wprintf |
||
118 | #undef wscanf |
||
119 | |||
120 | #if _GLIBCPP_USE_WCHAR_T |
||
121 | namespace std |
||
122 | { |
||
123 | using ::wint_t; |
||
124 | |||
125 | using ::btowc; |
||
126 | using ::fgetwc; |
||
127 | using ::fgetws; |
||
128 | using ::fputwc; |
||
129 | using ::fputws; |
||
130 | using ::fwide; |
||
131 | using ::fwprintf; |
||
132 | using ::fwscanf; |
||
133 | using ::getwc; |
||
134 | using ::getwchar; |
||
135 | using ::mbrlen; |
||
136 | using ::mbrtowc; |
||
137 | using ::mbsinit; |
||
138 | using ::mbsrtowcs; |
||
139 | using ::putwc; |
||
140 | using ::putwchar; |
||
141 | using ::swprintf; |
||
142 | using ::swscanf; |
||
143 | using ::ungetwc; |
||
144 | using ::vfwprintf; |
||
145 | using ::vfwscanf; |
||
146 | using ::vswprintf; |
||
147 | using ::vswscanf; |
||
148 | using ::vwprintf; |
||
149 | using ::vwscanf; |
||
150 | using ::wcrtomb; |
||
151 | using ::wcscat; |
||
152 | using ::wcscmp; |
||
153 | using ::wcscoll; |
||
154 | using ::wcscpy; |
||
155 | using ::wcscspn; |
||
156 | using ::wcsftime; |
||
157 | using ::wcslen; |
||
158 | using ::wcsncat; |
||
159 | using ::wcsncmp; |
||
160 | using ::wcsncpy; |
||
161 | using ::wcsrtombs; |
||
162 | using ::wcsspn; |
||
163 | using ::wcstod; |
||
164 | using ::wcstof; |
||
165 | using ::wcstok; |
||
166 | using ::wcstol; |
||
167 | using ::wcstoul; |
||
168 | using ::wcsxfrm; |
||
169 | using ::wctob; |
||
170 | using ::wmemcmp; |
||
171 | using ::wmemcpy; |
||
172 | using ::wmemmove; |
||
173 | using ::wmemset; |
||
174 | using ::wprintf; |
||
175 | using ::wscanf; |
||
176 | |||
177 | using ::wcschr; |
||
178 | |||
179 | inline wchar_t* |
||
180 | wcschr(wchar_t* __p, wchar_t __c) |
||
181 | { return wcschr(const_cast |
||
182 | |||
183 | using ::wcspbrk; |
||
184 | |||
185 | inline wchar_t* |
||
186 | wcspbrk(wchar_t* __s1, wchar_t* __s2) |
||
187 | { return wcspbrk(const_cast |
||
188 | |||
189 | using ::wcsrchr; |
||
190 | |||
191 | inline wchar_t* |
||
192 | wcsrchr(wchar_t* __p, wchar_t __c) |
||
193 | { return wcsrchr(const_cast |
||
194 | |||
195 | using ::wcsstr; |
||
196 | |||
197 | inline wchar_t* |
||
198 | wcsstr(wchar_t* __s1, wchar_t* __s2) |
||
199 | { return wcsstr(const_cast |
||
200 | |||
201 | using ::wmemchr; |
||
202 | |||
203 | inline wchar_t* |
||
204 | wmemchr(wchar_t* __p, wchar_t __c, size_t __n) |
||
205 | { return wmemchr(const_cast |
||
206 | } |
||
207 | |||
208 | #if _GLIBCPP_USE_C99 |
||
209 | |||
210 | #undef wcstold |
||
211 | #undef wcstoll |
||
212 | #undef wcstoull |
||
213 | |||
214 | namespace __gnu_cxx |
||
215 | { |
||
216 | using ::wcstold; |
||
217 | using ::wcstoll; |
||
218 | using ::wcstoull; |
||
219 | } |
||
220 | |||
221 | namespace std |
||
222 | { |
||
223 | using __gnu_cxx::wcstold; |
||
224 | using __gnu_cxx::wcstoll; |
||
225 | using __gnu_cxx::wcstoull; |
||
226 | } |
||
227 | #endif |
||
228 | |||
229 | #endif //_GLIBCPP_USE_WCHAR_T |
||
230 | |||
231 | #endif |