00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00045 #ifndef _GLIBCXX_CWCHAR
00046 #define _GLIBCXX_CWCHAR 1
00047
00048 #pragma GCC system_header
00049
00050 #include <bits/c++config.h>
00051 #include <cstddef>
00052 #include <ctime>
00053
00054 #if _GLIBCXX_HAVE_WCHAR_H
00055 #include <wchar.h>
00056 #endif
00057
00058
00059
00060 #ifndef _GLIBCXX_HAVE_MBSTATE_T
00061 extern "C"
00062 {
00063 typedef struct
00064 {
00065 int __fill[6];
00066 } mbstate_t;
00067 }
00068 #endif
00069
00070 namespace std
00071 {
00072 using ::mbstate_t;
00073 }
00074
00075
00076 #undef btowc
00077 #undef fgetwc
00078 #undef fgetws
00079 #undef fputwc
00080 #undef fputws
00081 #undef fwide
00082 #undef fwprintf
00083 #undef fwscanf
00084 #undef getwc
00085 #undef getwchar
00086 #undef mbrlen
00087 #undef mbrtowc
00088 #undef mbsinit
00089 #undef mbsrtowcs
00090 #undef putwc
00091 #undef putwchar
00092 #undef swprintf
00093 #undef swscanf
00094 #undef ungetwc
00095 #undef vfwprintf
00096 #if _GLIBCXX_HAVE_VFWSCANF
00097 # undef vfwscanf
00098 #endif
00099 #undef vswprintf
00100 #if _GLIBCXX_HAVE_VSWSCANF
00101 # undef vswscanf
00102 #endif
00103 #undef vwprintf
00104 #if _GLIBCXX_HAVE_VWSCANF
00105 # undef vwscanf
00106 #endif
00107 #undef wcrtomb
00108 #undef wcscat
00109 #undef wcschr
00110 #undef wcscmp
00111 #undef wcscoll
00112 #undef wcscpy
00113 #undef wcscspn
00114 #undef wcsftime
00115 #undef wcslen
00116 #undef wcsncat
00117 #undef wcsncmp
00118 #undef wcsncpy
00119 #undef wcspbrk
00120 #undef wcsrchr
00121 #undef wcsrtombs
00122 #undef wcsspn
00123 #undef wcsstr
00124 #undef wcstod
00125 #if _GLIBCXX_HAVE_WCSTOF
00126 # undef wcstof
00127 #endif
00128 #undef wcstok
00129 #undef wcstol
00130 #undef wcstoul
00131 #undef wcsxfrm
00132 #undef wctob
00133 #undef wmemchr
00134 #undef wmemcmp
00135 #undef wmemcpy
00136 #undef wmemmove
00137 #undef wmemset
00138 #undef wprintf
00139 #undef wscanf
00140
00141 #if _GLIBCXX_USE_WCHAR_T
00142 namespace std
00143 {
00144 using ::wint_t;
00145
00146 using ::btowc;
00147 using ::fgetwc;
00148 using ::fgetws;
00149 using ::fputwc;
00150 using ::fputws;
00151 using ::fwide;
00152 using ::fwprintf;
00153 using ::fwscanf;
00154 using ::getwc;
00155 using ::getwchar;
00156 using ::mbrlen;
00157 using ::mbrtowc;
00158 using ::mbsinit;
00159 using ::mbsrtowcs;
00160 using ::putwc;
00161 using ::putwchar;
00162 using ::swprintf;
00163 using ::swscanf;
00164 using ::ungetwc;
00165 using ::vfwprintf;
00166 #if _GLIBCXX_HAVE_VFWSCANF
00167 using ::vfwscanf;
00168 #endif
00169 using ::vswprintf;
00170 #if _GLIBCXX_HAVE_VSWSCANF
00171 using ::vswscanf;
00172 #endif
00173 using ::vwprintf;
00174 #if _GLIBCXX_HAVE_VWSCANF
00175 using ::vwscanf;
00176 #endif
00177 using ::wcrtomb;
00178 using ::wcscat;
00179 using ::wcscmp;
00180 using ::wcscoll;
00181 using ::wcscpy;
00182 using ::wcscspn;
00183 using ::wcsftime;
00184 using ::wcslen;
00185 using ::wcsncat;
00186 using ::wcsncmp;
00187 using ::wcsncpy;
00188 using ::wcsrtombs;
00189 using ::wcsspn;
00190 using ::wcstod;
00191 #if _GLIBCXX_HAVE_WCSTOF
00192 using ::wcstof;
00193 #endif
00194 using ::wcstok;
00195 using ::wcstol;
00196 using ::wcstoul;
00197 using ::wcsxfrm;
00198 using ::wctob;
00199 using ::wmemcmp;
00200 using ::wmemcpy;
00201 using ::wmemmove;
00202 using ::wmemset;
00203 using ::wprintf;
00204 using ::wscanf;
00205
00206 using ::wcschr;
00207
00208 inline wchar_t*
00209 wcschr(wchar_t* __p, wchar_t __c)
00210 { return wcschr(const_cast<const wchar_t*>(__p), __c); }
00211
00212 using ::wcspbrk;
00213
00214 inline wchar_t*
00215 wcspbrk(wchar_t* __s1, const wchar_t* __s2)
00216 { return wcspbrk(const_cast<const wchar_t*>(__s1), __s2); }
00217
00218 using ::wcsrchr;
00219
00220 inline wchar_t*
00221 wcsrchr(wchar_t* __p, wchar_t __c)
00222 { return wcsrchr(const_cast<const wchar_t*>(__p), __c); }
00223
00224 using ::wcsstr;
00225
00226 inline wchar_t*
00227 wcsstr(wchar_t* __s1, const wchar_t* __s2)
00228 { return wcsstr(const_cast<const wchar_t*>(__s1), __s2); }
00229
00230 using ::wmemchr;
00231
00232 inline wchar_t*
00233 wmemchr(wchar_t* __p, wchar_t __c, size_t __n)
00234 { return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); }
00235 }
00236
00237 #if _GLIBCXX_USE_C99
00238
00239 #undef wcstold
00240 #undef wcstoll
00241 #undef wcstoull
00242
00243 namespace __gnu_cxx
00244 {
00245 #if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMIC
00246 extern "C" long double
00247 (wcstold)(const wchar_t * restrict, wchar_t ** restrict);
00248 #endif
00249 #if !_GLIBCXX_USE_C99_DYNAMIC
00250 using ::wcstold;
00251 #endif
00252 #if _GLIBCXX_USE_C99_LONG_LONG_CHECK || _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
00253 extern "C" long long int
00254 (wcstoll)(const wchar_t * restrict, wchar_t ** restrict, int);
00255 extern "C" unsigned long long int
00256 (wcstoull)(const wchar_t * restrict, wchar_t ** restrict, int);
00257 #endif
00258 #if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
00259 using ::wcstoll;
00260 using ::wcstoull;
00261 #endif
00262 }
00263
00264 namespace std
00265 {
00266 using __gnu_cxx::wcstold;
00267 using __gnu_cxx::wcstoll;
00268 using __gnu_cxx::wcstoull;
00269 }
00270 #endif
00271
00272 #endif //_GLIBCXX_USE_WCHAR_T
00273
00274 #endif