1// C++ wchar forwarding header 2 3#pragma once 4 5#include <cstddef> 6 7#include <wchar.h> 8 9namespace std 10{ 11 using ::mbstate_t; 12} 13 14// Get rid of those macros defined in <wchar.h> in lieu of real functions. 15#undef btowc 16#undef fgetwc 17#undef fgetws 18#undef fputwc 19#undef fputws 20#undef fwide 21#undef fwprintf 22#undef fwscanf 23#undef getwc 24#undef getwchar 25#undef mbrlen 26#undef mbrtowc 27#undef mbsinit 28#undef mbsrtowcs 29#undef putwc 30#undef putwchar 31#undef swprintf 32#undef swscanf 33#undef ungetwc 34#undef vfwprintf 35#undef vfwscanf 36#undef vswprintf 37#undef vswscanf 38#undef vwprintf 39#undef vwscanf 40#undef wcrtomb 41#undef wcscat 42#undef wcschr 43#undef wcscmp 44#undef wcscoll 45#undef wcscpy 46#undef wcscspn 47#undef wcsftime 48#undef wcslen 49#undef wcsncat 50#undef wcsncmp 51#undef wcsncpy 52#undef wcspbrk 53#undef wcsrchr 54#undef wcsrtombs 55#undef wcsspn 56#undef wcsstr 57#undef wcstod 58#undef wcstof 59#undef wcstok 60#undef wcstol 61#undef wcstoul 62#undef wcsxfrm 63#undef wctob 64#undef wmemchr 65#undef wmemcmp 66#undef wmemcpy 67#undef wmemmove 68#undef wmemset 69#undef wprintf 70#undef wscanf 71 72namespace std 73{ 74 using ::wint_t; 75 76 using ::btowc; 77 using ::fgetwc; 78 using ::fgetws; 79 using ::fputwc; 80 using ::fputws; 81 using ::fwide; 82 using ::fwprintf; 83 using ::fwscanf; 84 using ::getwc; 85 using ::getwchar; 86 using ::mbrlen; 87 using ::mbrtowc; 88 using ::mbsinit; 89 using ::mbsrtowcs; 90 using ::putwc; 91 using ::putwchar; 92 using ::swprintf; 93 using ::swscanf; 94 using ::ungetwc; 95 using ::vfwprintf; 96 using ::vfwscanf; 97 using ::vswprintf; 98 using ::vswscanf; 99 using ::vwprintf; 100 using ::vwscanf; 101 using ::wcrtomb; 102 using ::wcscat; 103 using ::wcscmp; 104 using ::wcscoll; 105 using ::wcscpy; 106 using ::wcscspn; 107 using ::wcsftime; 108 using ::wcslen; 109 using ::wcsncat; 110 using ::wcsncmp; 111 using ::wcsncpy; 112 using ::wcsrtombs; 113 using ::wcsspn; 114 using ::wcstod; 115 using ::wcstof; 116 using ::wcstok; 117 using ::wcstol; 118 using ::wcstoul; 119 using ::wcsxfrm; 120 using ::wctob; 121 using ::wmemcmp; 122 using ::wmemcpy; 123 using ::wmemmove; 124 using ::wmemset; 125 using ::wprintf; 126 using ::wscanf; 127 using ::wcschr; 128 using ::wcspbrk; 129 using ::wcsrchr; 130 using ::wcsstr; 131 using ::wmemchr; 132 133 inline wchar_t* 134 wcschr(wchar_t* __p, wchar_t __c) 135 { return wcschr(const_cast<const wchar_t*>(__p), __c); } 136 137 inline wchar_t* 138 wcspbrk(wchar_t* __s1, const wchar_t* __s2) 139 { return wcspbrk(const_cast<const wchar_t*>(__s1), __s2); } 140 141 inline wchar_t* 142 wcsrchr(wchar_t* __p, wchar_t __c) 143 { return wcsrchr(const_cast<const wchar_t*>(__p), __c); } 144 145 inline wchar_t* 146 wcsstr(wchar_t* __s1, const wchar_t* __s2) 147 { return wcsstr(const_cast<const wchar_t*>(__s1), __s2); } 148 149 inline wchar_t* 150 wmemchr(wchar_t* __p, wchar_t __c, size_t __n) 151 { return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); } 152} 153