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 
00044 #ifndef _CPP_CWCHAR
00045 #define _CPP_CWCHAR 1
00046 
00047 #pragma GCC system_header
00048 
00049 #include <bits/c++config.h>
00050 #include <cstddef>
00051 #include <ctime>
00052 
00053 #if _GLIBCPP_HAVE_WCHAR_H
00054 #include <wchar.h>
00055 #endif
00056 
00057 
00058 
00059 #ifndef _GLIBCPP_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 #undef vfwscanf
00096 #undef vswprintf
00097 #undef vswscanf
00098 #undef vwprintf
00099 #undef vwscanf
00100 #undef wcrtomb
00101 #undef wcscat
00102 #undef wcschr
00103 #undef wcscmp
00104 #undef wcscoll
00105 #undef wcscpy
00106 #undef wcscspn
00107 #undef wcsftime
00108 #undef wcslen
00109 #undef wcsncat
00110 #undef wcsncmp
00111 #undef wcsncpy
00112 #undef wcspbrk
00113 #undef wcsrchr
00114 #undef wcsrtombs
00115 #undef wcsspn
00116 #undef wcsstr
00117 #undef wcstod
00118 #undef wcstof
00119 #undef wcstok
00120 #undef wcstol
00121 #undef wcstoul
00122 #undef wcsxfrm
00123 #undef wctob
00124 #undef wmemchr
00125 #undef wmemcmp
00126 #undef wmemcpy
00127 #undef wmemmove
00128 #undef wmemset
00129 #undef wprintf
00130 #undef wscanf
00131 
00132 #if _GLIBCPP_USE_WCHAR_T
00133 namespace std
00134 {
00135   using ::wint_t;
00136 
00137   using ::btowc;
00138   using ::fgetwc;
00139   using ::fgetws;
00140   using ::fputwc;
00141   using ::fputws;
00142   using ::fwide;
00143   using ::fwprintf;
00144   using ::fwscanf;
00145   using ::getwc;
00146   using ::getwchar;
00147   using ::mbrlen;
00148   using ::mbrtowc;
00149   using ::mbsinit;
00150   using ::mbsrtowcs;
00151   using ::putwc;
00152   using ::putwchar;
00153   using ::swprintf;
00154   using ::swscanf;
00155   using ::ungetwc;
00156   using ::vfwprintf;
00157   using ::vfwscanf;
00158   using ::vswprintf;
00159   using ::vswscanf;
00160   using ::vwprintf;
00161   using ::vwscanf;
00162   using ::wcrtomb;
00163   using ::wcscat;
00164   using ::wcscmp;
00165   using ::wcscoll;
00166   using ::wcscpy;
00167   using ::wcscspn;
00168   using ::wcsftime;
00169   using ::wcslen;
00170   using ::wcsncat;
00171   using ::wcsncmp;
00172   using ::wcsncpy;
00173   using ::wcsrtombs;
00174   using ::wcsspn;
00175   using ::wcstod;
00176   using ::wcstof;
00177   using ::wcstok;
00178   using ::wcstol;
00179   using ::wcstoul;
00180   using ::wcsxfrm;
00181   using ::wctob;
00182   using ::wmemcmp;
00183   using ::wmemcpy;
00184   using ::wmemmove;
00185   using ::wmemset;
00186   using ::wprintf;
00187   using ::wscanf;
00188 
00189   using ::wcschr;
00190 
00191   inline wchar_t*
00192   wcschr(wchar_t* __p, wchar_t __c)
00193   { return wcschr(const_cast<const wchar_t*>(__p), __c); }
00194 
00195   using ::wcspbrk;
00196 
00197   inline wchar_t*
00198   wcspbrk(wchar_t* __s1, wchar_t* __s2)
00199   { return wcspbrk(const_cast<const wchar_t*>(__s1), __s2); }
00200 
00201   using ::wcsrchr;
00202 
00203   inline wchar_t*
00204   wcsrchr(wchar_t* __p, wchar_t __c)
00205   { return wcsrchr(const_cast<const wchar_t*>(__p), __c); }
00206 
00207   using ::wcsstr;
00208 
00209   inline wchar_t*
00210   wcsstr(wchar_t* __s1, wchar_t* __s2)
00211   { return wcsstr(const_cast<const wchar_t*>(__s1), __s2); }
00212 
00213   using ::wmemchr;
00214 
00215   inline wchar_t*
00216   wmemchr(wchar_t* __p, wchar_t __c, size_t __n)
00217   { return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); }
00218 }
00219 
00220 #if _GLIBCPP_USE_C99
00221 
00222 #undef wcstold
00223 #undef wcstoll
00224 #undef wcstoull
00225 
00226 namespace __gnu_cxx
00227 {
00228   using ::wcstold;
00229   using ::wcstoll;
00230   using ::wcstoull;
00231 }
00232 
00233 namespace std
00234 {
00235   using __gnu_cxx::wcstold;
00236   using __gnu_cxx::wcstoll;
00237   using __gnu_cxx::wcstoull;
00238 }
00239 #endif
00240 
00241 #endif //_GLIBCPP_USE_WCHAR_T
00242 
00243 #endif