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