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