diff --git a/stl/src/StlLCMapStringA.cpp b/stl/src/StlLCMapStringA.cpp index 4b89ba36fb5..0829495a1d7 100644 --- a/stl/src/StlLCMapStringA.cpp +++ b/stl/src/StlLCMapStringA.cpp @@ -84,8 +84,8 @@ extern "C" int __cdecl __crtLCMapStringA(LPCWSTR LocaleName, DWORD dwMapFlags, L // do string mapping if (0 - == __crtLCMapStringEx( - LocaleName, dwMapFlags, inwbuffer.get(), inbuff_size, (LPWSTR) lpDestStr, cchDest)) { + == __crtLCMapStringEx(LocaleName, dwMapFlags, inwbuffer.get(), inbuff_size, + reinterpret_cast(lpDestStr), cchDest)) { return retval; } } diff --git a/stl/src/_tolower.cpp b/stl/src/_tolower.cpp index 28e1e1fa698..21d35f55a10 100644 --- a/stl/src/_tolower.cpp +++ b/stl/src/_tolower.cpp @@ -51,7 +51,7 @@ _CRTIMP2_PURE int __CLRCALL_PURE_OR_CDECL _Tolower(int c, const _Ctypevec* ploc) } if (locale_name == nullptr) { - if ((c >= 'A') && (c <= 'Z')) { + if (c >= 'A' && c <= 'Z') { c = c + ('a' - 'A'); } @@ -74,11 +74,11 @@ _CRTIMP2_PURE int __CLRCALL_PURE_OR_CDECL _Tolower(int c, const _Ctypevec* ploc) // convert int c to multibyte string if (ploc == nullptr ? _cpp_isleadbyte((c >> 8) & 0xff) : (ploc->_Table[(c >> 8) & 0xff] & _LEADBYTE) != 0) { inbuffer[0] = (c >> 8 & 0xff); - inbuffer[1] = (unsigned char) c; + inbuffer[1] = static_cast(c); inbuffer[2] = 0; size = 2; } else { - inbuffer[0] = (unsigned char) c; + inbuffer[0] = static_cast(c); inbuffer[1] = 0; size = 1; } @@ -93,9 +93,9 @@ _CRTIMP2_PURE int __CLRCALL_PURE_OR_CDECL _Tolower(int c, const _Ctypevec* ploc) // construct integer return value if (size == 1) { - return (int) outbuffer[0]; + return static_cast(outbuffer[0]); } else { - return (int) outbuffer[1] | ((int) outbuffer[0] << 8); + return static_cast(outbuffer[1]) | (static_cast(outbuffer[0]) << 8); } } @@ -104,12 +104,12 @@ _CRTIMP2_PURE _Ctypevec __CLRCALL_PURE_OR_CDECL _Getctype() { _Ctypevec ctype; ctype._Page = ___lc_codepage_func(); - ctype._Table = (const short*) _calloc_crt(256, sizeof(*__pctype_func())); - if (ctype._Table != 0) { - memcpy((void*) ctype._Table, __pctype_func(), 256 * sizeof(*__pctype_func())); + ctype._Table = static_cast(_calloc_crt(256, sizeof(*__pctype_func()))); + if (ctype._Table != nullptr) { + memcpy(const_cast(ctype._Table), __pctype_func(), 256 * sizeof(*__pctype_func())); ctype._Delfl = 1; } else { - ctype._Table = (const short*) __pctype_func(); + ctype._Table = reinterpret_cast(__pctype_func()); ctype._Delfl = 0; } ctype._LocaleName = ___lc_locale_name_func()[LC_COLLATE]; diff --git a/stl/src/_toupper.cpp b/stl/src/_toupper.cpp index 2f776e8baed..e0cc01cc5af 100644 --- a/stl/src/_toupper.cpp +++ b/stl/src/_toupper.cpp @@ -49,7 +49,7 @@ _CRTIMP2_PURE int __CLRCALL_PURE_OR_CDECL _Toupper(int c, const _Ctypevec* ploc) } if (locale_name == nullptr) { - if ((c >= 'a') && (c <= 'z')) { + if (c >= 'a' && c <= 'z') { c = c - ('a' - 'A'); } @@ -72,11 +72,11 @@ _CRTIMP2_PURE int __CLRCALL_PURE_OR_CDECL _Toupper(int c, const _Ctypevec* ploc) // convert int c to multibyte string if (ploc == nullptr ? _cpp_isleadbyte((c >> 8) & 0xff) : (ploc->_Table[(c >> 8) & 0xff] & _LEADBYTE) != 0) { inbuffer[0] = (c >> 8 & 0xff); - inbuffer[1] = (unsigned char) c; + inbuffer[1] = static_cast(c); inbuffer[2] = 0; size = 2; } else { - inbuffer[0] = (unsigned char) c; + inbuffer[0] = static_cast(c); inbuffer[1] = 0; size = 1; } @@ -91,9 +91,9 @@ _CRTIMP2_PURE int __CLRCALL_PURE_OR_CDECL _Toupper(int c, const _Ctypevec* ploc) // construct integer return value if (size == 1) { - return (int) outbuffer[0]; + return static_cast(outbuffer[0]); } else { - return (int) outbuffer[1] | ((int) outbuffer[0] << 8); + return static_cast(outbuffer[1]) | (static_cast(outbuffer[0]) << 8); } } diff --git a/stl/src/atomic.cpp b/stl/src/atomic.cpp index 7a8a9792f64..b2c0eeb00ba 100644 --- a/stl/src/atomic.cpp +++ b/stl/src/atomic.cpp @@ -27,7 +27,7 @@ _CRTIMP2_PURE void __cdecl _Lock_shared_ptr_spin_lock() { // spin until _Shared_ _CRTIMP2_PURE void __cdecl _Unlock_shared_ptr_spin_lock() { // release previously obtained lock #ifdef _M_ARM __dmb(_ARM_BARRIER_ISH); - __iso_volatile_store32((volatile int*) &_Shared_ptr_flag, 0); + __iso_volatile_store32(reinterpret_cast(&_Shared_ptr_flag), 0); #else // _M_ARM _interlockedbittestandreset(&_Shared_ptr_flag, 0); // reset bit 0 #endif // _M_ARM diff --git a/stl/src/cthread.cpp b/stl/src/cthread.cpp index f7277732120..99cee9b12e6 100644 --- a/stl/src/cthread.cpp +++ b/stl/src/cthread.cpp @@ -28,7 +28,7 @@ namespace { using _Thrd_callback_t = unsigned int(__stdcall*)(void*); unsigned int __stdcall _Thrd_runner(void* d) { // call thread function - _Thrd_binder b = *(_Thrd_binder*) d; + _Thrd_binder b = *static_cast<_Thrd_binder*>(d); _Mtx_lock(*b.mtx); *b.started = 1; _Cnd_signal(*b.cond); @@ -59,7 +59,7 @@ int _Thrd_join(_Thrd_t thr, int* code) { // return exit code when thread termina } if (code) { - *code = (int) res; + *code = static_cast(res); } return CloseHandle(thr._Hnd) == 0 ? _Thrd_error : _Thrd_success; diff --git a/stl/src/filesys.cpp b/stl/src/filesys.cpp index 9b018700b29..7a734059a48 100644 --- a/stl/src/filesys.cpp +++ b/stl/src/filesys.cpp @@ -114,7 +114,7 @@ _FS_DLL void* __CLRCALL_PURE_OR_CDECL _Open_dir( if (_Handle == INVALID_HANDLE_VALUE) { // report failure _Errno = ERROR_BAD_PATHNAME; *_Dest = L'\0'; - return 0; + return nullptr; } // success, get first directory entry @@ -129,7 +129,7 @@ _FS_DLL void* __CLRCALL_PURE_OR_CDECL _Open_dir( // no entries, release handle _Close_dir(_Handle); - return 0; + return nullptr; } // get file type and return handle @@ -145,7 +145,7 @@ _FS_DLL bool __CLRCALL_PURE_OR_CDECL _Current_get(wchar_t (&_Dest)[_MAX_FILESYS_ #ifdef _CRT_APP return false; // no support #else // _CRT_APP - return _wgetcwd(_Dest, _MAX_FILESYS_NAME) != 0; + return _wgetcwd(_Dest, _MAX_FILESYS_NAME) != nullptr; #endif // _CRT_APP } @@ -161,7 +161,7 @@ _FS_DLL bool __CLRCALL_PURE_OR_CDECL _Current_set(const wchar_t* _Dirname) { _FS_DLL wchar_t* __CLRCALL_PURE_OR_CDECL _Symlink_get(wchar_t (&_Dest)[_MAX_FILESYS_NAME], const wchar_t*) { // get symlink -- DUMMY - _Dest[0] = wchar_t(0); + _Dest[0] = L'\0'; return &_Dest[0]; } diff --git a/stl/src/fiopen.cpp b/stl/src/fiopen.cpp index 84aaebe741b..f5e2892dfd1 100644 --- a/stl/src/fiopen.cpp +++ b/stl/src/fiopen.cpp @@ -64,21 +64,21 @@ FILE* _Xfiopen(const CharT* filename, ios_base::openmode mode, int prot) { } if (valid[n] == 0) { - return 0; // no valid mode + return nullptr; // no valid mode } if (norepflag && (mode & (ios_base::out | ios_base::app)) && (fp = _Xfsopen(filename, 0, prot)) != nullptr) { // file must not exist, close and fail fclose(fp); - return 0; + return nullptr; } if (fp != nullptr && fclose(fp) != 0) { - return 0; // can't close after test open + return nullptr; // can't close after test open } if ((fp = _Xfsopen(filename, n, prot)) == nullptr) { - return 0; // open failed + return nullptr; // open failed } if (!atendflag || fseek(fp, 0, SEEK_END) == 0) { @@ -86,7 +86,7 @@ FILE* _Xfiopen(const CharT* filename, ios_base::openmode mode, int prot) { } fclose(fp); // can't position at end - return 0; + return nullptr; } _CRTIMP2_PURE FILE* __CLRCALL_PURE_OR_CDECL _Fiopen( diff --git a/stl/src/ios.cpp b/stl/src/ios.cpp index 3082c1781a4..73c12428252 100644 --- a/stl/src/ios.cpp +++ b/stl/src/ios.cpp @@ -75,7 +75,7 @@ void __CLRCALL_PURE_OR_CDECL ios_base::_Ios_base_dtor(ios_base* _This) { // dest void __CLRCALL_PURE_OR_CDECL ios_base::_Addstd(ios_base* _This) { // add standard stream to destructor list _BEGIN_LOCK(_LOCK_STREAM) for (_This->_Stdstr = 1; _This->_Stdstr < _Nstdstr; ++_This->_Stdstr) { - if (stdstr[_This->_Stdstr] == 0 || stdstr[_This->_Stdstr] == _This) { + if (stdstr[_This->_Stdstr] == nullptr || stdstr[_This->_Stdstr] == _This) { break; // found a candidate } } diff --git a/stl/src/locale.cpp b/stl/src/locale.cpp index 6f9b336ae1b..75e6250b402 100644 --- a/stl/src/locale.cpp +++ b/stl/src/locale.cpp @@ -17,11 +17,6 @@ _STD_BEGIN -using _Traits = char_traits; -using _Initer = istreambuf_iterator; -using _Outiter = ostreambuf_iterator; - - _MRTIMP2_PURE locale __CLRCALL_PURE_OR_CDECL locale::global(const locale& loc) { // change global locale locale _Oldglobal; _BEGIN_LOCK(_LOCK_LOCALE) @@ -49,29 +44,31 @@ _MRTIMP2_PURE locale __CLRCALL_PURE_OR_CDECL locale::global(const locale& loc) { #if STDCPP_IMPLIB || !defined(_M_CEE_PURE) // facets associated with C categories -#define ADDFAC(Facet, cat, ptrimp, ptrloc) \ - if ((_CATMASK(Facet::_Getcat()) & cat) == 0) { \ - ; \ - } else if (ptrloc == nullptr) { \ - ptrimp->_Addfac(new Facet(lobj), Facet::id); \ - } else { \ - ptrimp->_Addfac((locale::facet*) &_STD use_facet(*ptrloc), Facet::id); \ +#define ADDFAC(Facet, cat, ptrimp, ptrloc) \ + if ((_CATMASK(Facet::_Getcat()) & cat) == 0) { \ + ; \ + } else if (ptrloc == nullptr) { \ + ptrimp->_Addfac(new Facet(lobj), Facet::id); \ + } else { \ + ptrimp->_Addfac( \ + const_cast(static_cast(&_STD use_facet(*ptrloc))), \ + Facet::id); \ } -using _T1 = ctype; -using _T2 = num_get; -using _T3 = num_put; -using _T4 = numpunct; -using _T5 = codecvt; +using _Tc1 = ctype; +using _Tc2 = num_get; +using _Tc3 = num_put; +using _Tc4 = numpunct; +using _Tc5 = codecvt; // others moved to wlocale and xlocale to ease subsetting locale::_Locimp* __CLRCALL_OR_CDECL locale::_Locimp::_Makeloc( const _Locinfo& lobj, locale::category cat, _Locimp* ptrimp, const locale* ptrloc) { // setup a new locale - ADDFAC(_T1, cat, ptrimp, ptrloc); - ADDFAC(_T2, cat, ptrimp, ptrloc); - ADDFAC(_T3, cat, ptrimp, ptrloc); - ADDFAC(_T4, cat, ptrimp, ptrloc); - ADDFAC(_T5, cat, ptrimp, ptrloc); + ADDFAC(_Tc1, cat, ptrimp, ptrloc); + ADDFAC(_Tc2, cat, ptrimp, ptrloc); + ADDFAC(_Tc3, cat, ptrimp, ptrloc); + ADDFAC(_Tc4, cat, ptrimp, ptrloc); + ADDFAC(_Tc5, cat, ptrimp, ptrloc); _Locimp::_Makexloc(lobj, cat, ptrimp, ptrloc); _Locimp::_Makewloc(lobj, cat, ptrimp, ptrloc); #ifdef _NATIVE_WCHAR_T_DEFINED @@ -91,10 +88,11 @@ void __CLRCALL_PURE_OR_CDECL locale::_Locimp::_Locimp_ctor( } else { // lock to keep facets from disappearing _BEGIN_LOCK(_LOCK_LOCALE) if (0 < _This->_Facetcount) { // copy over nonempty facet vector - if ((_This->_Facetvec = (locale::facet**) _malloc_crt(_This->_Facetcount * sizeof(locale::facet*))) - == nullptr) { // report no memory + _This->_Facetvec = static_cast(_malloc_crt(_This->_Facetcount * sizeof(locale::facet*))); + if (_This->_Facetvec == nullptr) { // report no memory _Xbad_alloc(); } + for (size_t count = _This->_Facetcount; 0 < count;) { // copy over facet pointers locale::facet* ptrfac = imp._Facetvec[--count]; if ((_This->_Facetvec[count] = ptrfac) != nullptr) { @@ -119,7 +117,8 @@ void __CLRCALL_PURE_OR_CDECL locale::_Locimp::_Locimp_Addfac( count = MINCAT; } - locale::facet** ptrnewvec = (locale::facet**) _realloc_crt(_This->_Facetvec, count * sizeof(locale::facet**)); + locale::facet** ptrnewvec = + static_cast(_realloc_crt(_This->_Facetvec, count * sizeof(locale::facet**))); if (ptrnewvec == nullptr) { // report no memory _Xbad_alloc(); } diff --git a/stl/src/locale0.cpp b/stl/src/locale0.cpp index 144bcef20ab..46a6f679fe3 100644 --- a/stl/src/locale0.cpp +++ b/stl/src/locale0.cpp @@ -79,7 +79,7 @@ _STD_END _EXTERN_C void __CLRCALL_OR_CDECL _Deletegloballocale(void* ptr) { // delete a global locale reference - std::locale::_Locimp* locptr = *(std::locale::_Locimp**) ptr; + std::locale::_Locimp* locptr = *static_cast(ptr); if (locptr != nullptr) { delete locptr->_Decref(); } @@ -116,7 +116,7 @@ _MRTIMP2_PURE void __CLRCALL_PURE_OR_CDECL std::locale::_Setgloballocale(void* p _atexit_m_appdomain(tidy_global); #endif } - global_locale = (std::locale::_Locimp*) ptr; + global_locale = static_cast(ptr); } __PURE_APPDOMAIN_GLOBAL static locale classic_locale(_Noinit); // "C" locale object, uninitialized @@ -213,4 +213,4 @@ void __CLRCALL_PURE_OR_CDECL _Locinfo::_Locinfo_dtor(_Locinfo* pLocinfo) { // de } _STD_END -#endif // !STDCPP_IMPLIB +#endif // !STDCPP_IMPLIB || defined(_M_CEE_PURE) diff --git a/stl/src/mutex.cpp b/stl/src/mutex.cpp index 72f32365ff0..79ca2067e08 100644 --- a/stl/src/mutex.cpp +++ b/stl/src/mutex.cpp @@ -67,10 +67,11 @@ void _Mtx_destroy_in_situ(_Mtx_t mtx) { // destroy mutex in situ } int _Mtx_init(_Mtx_t* mtx, int type) { // initialize mutex - _Mtx_t mutex; - *mtx = 0; + *mtx = nullptr; - if ((mutex = static_cast<_Mtx_t>(_calloc_crt(1, sizeof(struct _Mtx_internal_imp_t)))) == 0) { + _Mtx_t mutex = static_cast<_Mtx_t>(_calloc_crt(1, sizeof(_Mtx_internal_imp_t))); + + if (mutex == nullptr) { return _Thrd_nomem; // report alloc failed } @@ -98,7 +99,7 @@ static int mtx_do_lock(_Mtx_t mtx, const xtime* target) { // lock mutex return _Thrd_success; } else { // handle timed or recursive mutex int res = WAIT_TIMEOUT; - if (target == 0) { // no target --> plain wait (i.e. infinite timeout) + if (target == nullptr) { // no target --> plain wait (i.e. infinite timeout) if (mtx->thread_id != static_cast(GetCurrentThreadId())) { mtx->_get_cs()->lock(); } @@ -149,7 +150,7 @@ static int mtx_do_lock(_Mtx_t mtx, const xtime* target) { // lock mutex return _Thrd_success; case WAIT_TIMEOUT: - if (target == 0 || (target->sec == 0 && target->nsec == 0)) { + if (target == nullptr || (target->sec == 0 && target->nsec == 0)) { return _Thrd_busy; } else { return _Thrd_timedout; @@ -173,7 +174,7 @@ int _Mtx_unlock(_Mtx_t mtx) { // unlock mutex } int _Mtx_lock(_Mtx_t mtx) { // lock mutex - return mtx_do_lock(mtx, 0); + return mtx_do_lock(mtx, nullptr); } int _Mtx_trylock(_Mtx_t mtx) { // attempt to lock try_mutex diff --git a/stl/src/parallel_algorithms.cpp b/stl/src/parallel_algorithms.cpp index 5e7a5fc1254..c59577b7d53 100644 --- a/stl/src/parallel_algorithms.cpp +++ b/stl/src/parallel_algorithms.cpp @@ -82,7 +82,7 @@ namespace { void _Atomic_store_uint(volatile unsigned int* _Tgt, unsigned int _Value) { // atomic store of unsigned int, copied from #if defined(_M_IX86) || defined(_M_X64) - _InterlockedExchange((volatile long*) _Tgt, static_cast(_Value)); + _InterlockedExchange(reinterpret_cast(_Tgt), static_cast(_Value)); #else // architecture, ditto no ARM support #error Unsupported architecture #endif // architecture diff --git a/stl/src/primitives.hpp b/stl/src/primitives.hpp index 302d0daafd5..85eabcfb821 100644 --- a/stl/src/primitives.hpp +++ b/stl/src/primitives.hpp @@ -349,8 +349,8 @@ namespace Concurrency { #if defined _CRT_WINDOWS const size_t stl_critical_section_max_size = sizeof(stl_critical_section_win7); const size_t stl_condition_variable_max_size = sizeof(stl_condition_variable_win7); - const size_t stl_critical_section_max_alignment = __alignof(stl_critical_section_win7); - const size_t stl_condition_variable_max_alignment = __alignof(stl_condition_variable_win7); + const size_t stl_critical_section_max_alignment = alignof(stl_critical_section_win7); + const size_t stl_condition_variable_max_alignment = alignof(stl_condition_variable_win7); #elif defined _STL_CONCRT_SUPPORT const size_t stl_critical_section_max_size = __max(__max(sizeof(stl_critical_section_concrt), sizeof(stl_critical_section_vista)), @@ -359,20 +359,20 @@ namespace Concurrency { __max(__max(sizeof(stl_condition_variable_concrt), sizeof(stl_condition_variable_vista)), sizeof(stl_condition_variable_win7)); const size_t stl_critical_section_max_alignment = - __max(__max(__alignof(stl_critical_section_concrt), __alignof(stl_critical_section_vista)), - __alignof(stl_critical_section_win7)); + __max(__max(alignof(stl_critical_section_concrt), alignof(stl_critical_section_vista)), + alignof(stl_critical_section_win7)); const size_t stl_condition_variable_max_alignment = - __max(__max(__alignof(stl_condition_variable_concrt), __alignof(stl_condition_variable_vista)), - __alignof(stl_condition_variable_win7)); + __max(__max(alignof(stl_condition_variable_concrt), alignof(stl_condition_variable_vista)), + alignof(stl_condition_variable_win7)); #else const size_t stl_critical_section_max_size = __max(sizeof(stl_critical_section_vista), sizeof(stl_critical_section_win7)); const size_t stl_condition_variable_max_size = __max(sizeof(stl_condition_variable_vista), sizeof(stl_condition_variable_win7)); const size_t stl_critical_section_max_alignment = - __max(__alignof(stl_critical_section_vista), __alignof(stl_critical_section_win7)); + __max(alignof(stl_critical_section_vista), alignof(stl_critical_section_win7)); const size_t stl_condition_variable_max_alignment = - __max(__alignof(stl_condition_variable_vista), __alignof(stl_condition_variable_win7)); + __max(alignof(stl_condition_variable_vista), alignof(stl_condition_variable_win7)); #endif } // namespace details } // namespace Concurrency diff --git a/stl/src/raisehan.cpp b/stl/src/raisehan.cpp index 6319197bca3..aa2f4bade2f 100644 --- a/stl/src/raisehan.cpp +++ b/stl/src/raisehan.cpp @@ -9,6 +9,6 @@ #include _STD_BEGIN -_Prhand _Raise_handler = 0; // define raise handler pointer +_Prhand _Raise_handler = nullptr; // define raise handler pointer _STD_END diff --git a/stl/src/stdhndlr.cpp b/stl/src/stdhndlr.cpp index 82c64ac35db..3c0b777eba2 100644 --- a/stl/src/stdhndlr.cpp +++ b/stl/src/stdhndlr.cpp @@ -21,7 +21,7 @@ _CRTIMP2 new_handler __cdecl set_new_handler(new_handler pnew) noexcept { // rem _BEGIN_LOCK(_LOCK_MALLOC) // lock thread to ensure atomicity new_handler pold = _New_handler; _New_handler = pnew; - _set_new_handler(pnew ? _New_handler_interface : 0); + _set_new_handler(pnew ? _New_handler_interface : nullptr); return pold; _END_LOCK() } diff --git a/stl/src/wlocale.cpp b/stl/src/wlocale.cpp index 508dae7f1bd..ea572750cd1 100644 --- a/stl/src/wlocale.cpp +++ b/stl/src/wlocale.cpp @@ -10,37 +10,33 @@ _STD_BEGIN #pragma warning(disable : 4074) #pragma init_seg(compiler) - -using _Wtraits = char_traits; -using _Winiter = istreambuf_iterator; -using _Woutiter = ostreambuf_iterator; - // facets associated with C categories -#define ADDFAC(Facet, cat, ptrimp, ptrloc) \ - if ((_CATMASK(Facet::_Getcat()) & cat) == 0) { \ - ; \ - } else if (ptrloc == nullptr) { \ - ptrimp->_Addfac(new Facet(lobj), Facet::id); \ - } else { \ - ptrimp->_Addfac((locale::facet*) &_STD use_facet(*ptrloc), Facet::id); \ +#define ADDFAC(Facet, cat, ptrimp, ptrloc) \ + if ((_CATMASK(Facet::_Getcat()) & cat) == 0) { \ + ; \ + } else if (ptrloc == nullptr) { \ + ptrimp->_Addfac(new Facet(lobj), Facet::id); \ + } else { \ + ptrimp->_Addfac( \ + const_cast(static_cast(&_STD use_facet(*ptrloc))), \ + Facet::id); \ } // moved from locale to ease subsetting using _Tw1 = ctype; -using _Tw2 = num_get; -using _Tw3 = num_put; +using _Tw2 = num_get; +using _Tw3 = num_put; using _Tw4 = numpunct; using _Tw5 = collate; using _Tw6 = messages; -using _Tw7 = money_get; -using _Tw8 = money_put; +using _Tw7 = money_get; +using _Tw8 = money_put; using _Tw9 = moneypunct; using _Tw10 = moneypunct; -using _Tw11 = time_get; -using _Tw12 = time_put; +using _Tw11 = time_get; +using _Tw12 = time_put; using _Tw13 = codecvt; -__PURE_APPDOMAIN_GLOBAL locale::id time_put::id(0); - +__PURE_APPDOMAIN_GLOBAL locale::id time_put::id(0); void __CLRCALL_OR_CDECL locale::_Locimp::_Makewloc(const _Locinfo& lobj, locale::category cat, _Locimp* ptrimp, const locale* ptrloc) { // setup wide part of a new locale @@ -60,40 +56,36 @@ void __CLRCALL_OR_CDECL locale::_Locimp::_Makewloc(const _Locinfo& lobj, locale: } #ifdef _NATIVE_WCHAR_T_DEFINED -using _UShtraits = char_traits; -using _UShiniter = istreambuf_iterator; -using _UShoutiter = ostreambuf_iterator; - // moved from locale to ease subsetting -using _Tush1 = ctype; -using _Tush2 = num_get; -using _Tush3 = num_put; -using _Tush4 = numpunct; -using _Tush5 = collate; -using _Tush6 = messages; -using _Tush7 = money_get; -using _Tush8 = money_put; -using _Tush9 = moneypunct; -using _Tush10 = moneypunct; -using _Tush11 = time_get; -using _Tush12 = time_put; -using _Tush13 = codecvt; +using _Tu1 = ctype; +using _Tu2 = num_get; +using _Tu3 = num_put; +using _Tu4 = numpunct; +using _Tu5 = collate; +using _Tu6 = messages; +using _Tu7 = money_get; +using _Tu8 = money_put; +using _Tu9 = moneypunct; +using _Tu10 = moneypunct; +using _Tu11 = time_get; +using _Tu12 = time_put; +using _Tu13 = codecvt; void __CLRCALL_OR_CDECL locale::_Locimp::_Makeushloc(const _Locinfo& lobj, locale::category cat, _Locimp* ptrimp, const locale* ptrloc) { // setup wide part of a new locale - ADDFAC(_Tush1, cat, ptrimp, ptrloc); - ADDFAC(_Tush2, cat, ptrimp, ptrloc); - ADDFAC(_Tush3, cat, ptrimp, ptrloc); - ADDFAC(_Tush4, cat, ptrimp, ptrloc); - ADDFAC(_Tush5, cat, ptrimp, ptrloc); - ADDFAC(_Tush6, cat, ptrimp, ptrloc); - ADDFAC(_Tush7, cat, ptrimp, ptrloc); - ADDFAC(_Tush8, cat, ptrimp, ptrloc); - ADDFAC(_Tush9, cat, ptrimp, ptrloc); - ADDFAC(_Tush10, cat, ptrimp, ptrloc); - ADDFAC(_Tush11, cat, ptrimp, ptrloc); - ADDFAC(_Tush12, cat, ptrimp, ptrloc); - ADDFAC(_Tush13, cat, ptrimp, ptrloc); + ADDFAC(_Tu1, cat, ptrimp, ptrloc); + ADDFAC(_Tu2, cat, ptrimp, ptrloc); + ADDFAC(_Tu3, cat, ptrimp, ptrloc); + ADDFAC(_Tu4, cat, ptrimp, ptrloc); + ADDFAC(_Tu5, cat, ptrimp, ptrloc); + ADDFAC(_Tu6, cat, ptrimp, ptrloc); + ADDFAC(_Tu7, cat, ptrimp, ptrloc); + ADDFAC(_Tu8, cat, ptrimp, ptrloc); + ADDFAC(_Tu9, cat, ptrimp, ptrloc); + ADDFAC(_Tu10, cat, ptrimp, ptrloc); + ADDFAC(_Tu11, cat, ptrimp, ptrloc); + ADDFAC(_Tu12, cat, ptrimp, ptrloc); + ADDFAC(_Tu13, cat, ptrimp, ptrloc); } #endif // _NATIVE_WCHAR_T_DEFINED diff --git a/stl/src/xdint.cpp b/stl/src/xdint.cpp index 69a8af833e8..677f8d597bc 100644 --- a/stl/src/xdint.cpp +++ b/stl/src/xdint.cpp @@ -8,9 +8,8 @@ _EXTERN_C_UNLESS_PURE short _Dint(double* px, short xexp) { // test and drop (scaled) fraction bits - _Dval* ps = (_Dval*) (char*) px; - unsigned short frac; - short xchar = (ps->_Sh[_D0] & _DMASK) >> _DOFF; + const auto ps = reinterpret_cast<_Dval*>(px); + short xchar = (ps->_Sh[_D0] & _DMASK) >> _DOFF; if (xchar == _DMAX) { return (ps->_Sh[_D0] & _DFRAC) == 0 && ps->_Sh[_D1] == 0 && ps->_Sh[_D2] == 0 && ps->_Sh[_D3] == 0 ? _INFCODE @@ -36,7 +35,7 @@ short _Dint(double* px, short xexp) { // test and drop (scaled) fraction bits 0x0fff, 0x1fff, 0x3fff, 0x7fff}; static const size_t sub[] = {_D3, _D2, _D1, _D0}; - frac = mask[xchar & 0xf]; + unsigned short frac = mask[xchar & 0xf]; xchar >>= 4; frac &= ps->_Sh[sub[xchar]]; ps->_Sh[sub[xchar]] ^= frac; diff --git a/stl/src/xdnorm.cpp b/stl/src/xdnorm.cpp index e9a8587dde9..aa4bfbfcbaf 100644 --- a/stl/src/xdnorm.cpp +++ b/stl/src/xdnorm.cpp @@ -9,7 +9,7 @@ _EXTERN_C_UNLESS_PURE short _Dnorm(_Dval* ps) { // normalize double fraction short xchar; - unsigned short sign = (unsigned short) (ps->_Sh[_D0] & _DSIGN); + unsigned short sign = static_cast(ps->_Sh[_D0] & _DSIGN); xchar = 1; if ((ps->_Sh[_D0] &= _DFRAC) != 0 || ps->_Sh[_D1] || ps->_Sh[_D2] || ps->_Sh[_D3]) { // nonzero, scale @@ -20,15 +20,15 @@ short _Dnorm(_Dval* ps) { // normalize double fraction ps->_Sh[_D3] = 0; } for (; ps->_Sh[_D0] < 1 << _DOFF; --xchar) { // shift left by 1 - ps->_Sh[_D0] = (unsigned short) (ps->_Sh[_D0] << 1 | ps->_Sh[_D1] >> 15); - ps->_Sh[_D1] = (unsigned short) (ps->_Sh[_D1] << 1 | ps->_Sh[_D2] >> 15); - ps->_Sh[_D2] = (unsigned short) (ps->_Sh[_D2] << 1 | ps->_Sh[_D3] >> 15); + ps->_Sh[_D0] = static_cast(ps->_Sh[_D0] << 1 | ps->_Sh[_D1] >> 15); + ps->_Sh[_D1] = static_cast(ps->_Sh[_D1] << 1 | ps->_Sh[_D2] >> 15); + ps->_Sh[_D2] = static_cast(ps->_Sh[_D2] << 1 | ps->_Sh[_D3] >> 15); ps->_Sh[_D3] <<= 1; } for (; 1 << (_DOFF + 1) <= ps->_Sh[_D0]; ++xchar) { // shift right by 1 - ps->_Sh[_D3] = (unsigned short) (ps->_Sh[_D3] >> 1 | ps->_Sh[_D2] << 15); - ps->_Sh[_D2] = (unsigned short) (ps->_Sh[_D2] >> 1 | ps->_Sh[_D1] << 15); - ps->_Sh[_D1] = (unsigned short) (ps->_Sh[_D1] >> 1 | ps->_Sh[_D0] << 15); + ps->_Sh[_D3] = static_cast(ps->_Sh[_D3] >> 1 | ps->_Sh[_D2] << 15); + ps->_Sh[_D2] = static_cast(ps->_Sh[_D2] >> 1 | ps->_Sh[_D1] << 15); + ps->_Sh[_D1] = static_cast(ps->_Sh[_D1] >> 1 | ps->_Sh[_D0] << 15); ps->_Sh[_D0] >>= 1; } ps->_Sh[_D0] &= _DFRAC; diff --git a/stl/src/xdscale.cpp b/stl/src/xdscale.cpp index 9fa38e77c20..f6a6702dee2 100644 --- a/stl/src/xdscale.cpp +++ b/stl/src/xdscale.cpp @@ -8,13 +8,13 @@ _EXTERN_C_UNLESS_PURE short _Dscale(double* px, long lexp) { // scale *px by 2^xexp with checking - _Dval* ps = (_Dval*) (char*) px; - short xchar = (short) ((ps->_Sh[_D0] & _DMASK) >> _DOFF); + const auto ps = reinterpret_cast<_Dval*>(px); + short xchar = static_cast((ps->_Sh[_D0] & _DMASK) >> _DOFF); if (xchar == _DMAX) { - return (short) ((ps->_Sh[_D0] & _DFRAC) != 0 || ps->_Sh[_D1] != 0 || ps->_Sh[_D2] != 0 || ps->_Sh[_D3] != 0 - ? _NANCODE - : _INFCODE); + return static_cast( + (ps->_Sh[_D0] & _DFRAC) != 0 || ps->_Sh[_D1] != 0 || ps->_Sh[_D2] != 0 || ps->_Sh[_D3] != 0 ? _NANCODE + : _INFCODE); } else if (xchar == 0 && 0 < (xchar = _Dnorm(ps))) { return 0; } @@ -23,12 +23,12 @@ short _Dscale(double* px, long lexp) { // scale *px by 2^xexp with checking *px = ps->_Sh[_D0] & _DSIGN ? -_Inf._Double : _Inf._Double; return _INFCODE; } else if (-xchar < lexp) { // finite result, repack - ps->_Sh[_D0] = (unsigned short) (ps->_Sh[_D0] & ~_DMASK | (lexp + xchar) << _DOFF); + ps->_Sh[_D0] = static_cast(ps->_Sh[_D0] & ~_DMASK | (lexp + xchar) << _DOFF); return _FINITE; } else { // denormalized, scale - unsigned short sign = (unsigned short) (ps->_Sh[_D0] & _DSIGN); + unsigned short sign = static_cast(ps->_Sh[_D0] & _DSIGN); - ps->_Sh[_D0] = (unsigned short) (1 << _DOFF | ps->_Sh[_D0] & _DFRAC); + ps->_Sh[_D0] = static_cast(1 << _DOFF | ps->_Sh[_D0] & _DFRAC); lexp += xchar - 1; if (lexp < -(48 + 1 + _DOFF) || 0 <= lexp) { // certain underflow, return +/-0 ps->_Sh[_D0] = sign; @@ -37,7 +37,7 @@ short _Dscale(double* px, long lexp) { // scale *px by 2^xexp with checking ps->_Sh[_D3] = 0; return 0; } else { // nonzero, align fraction - short xexp = (short) lexp; + short xexp = static_cast(lexp); unsigned short psx = 0; for (; xexp <= -16; xexp += 16) { // scale by words @@ -47,11 +47,11 @@ short _Dscale(double* px, long lexp) { // scale *px by 2^xexp with checking ps->_Sh[_D1] = ps->_Sh[_D0]; ps->_Sh[_D0] = 0; } - if ((xexp = (short) -xexp) != 0) { // scale by bits + if ((xexp = static_cast(-xexp)) != 0) { // scale by bits psx = (ps->_Sh[_D3] << (16 - xexp)) | (psx != 0 ? 1 : 0); - ps->_Sh[_D3] = (unsigned short) (ps->_Sh[_D3] >> xexp | ps->_Sh[_D2] << (16 - xexp)); - ps->_Sh[_D2] = (unsigned short) (ps->_Sh[_D2] >> xexp | ps->_Sh[_D1] << (16 - xexp)); - ps->_Sh[_D1] = (unsigned short) (ps->_Sh[_D1] >> xexp | ps->_Sh[_D0] << (16 - xexp)); + ps->_Sh[_D3] = static_cast(ps->_Sh[_D3] >> xexp | ps->_Sh[_D2] << (16 - xexp)); + ps->_Sh[_D2] = static_cast(ps->_Sh[_D2] >> xexp | ps->_Sh[_D1] << (16 - xexp)); + ps->_Sh[_D1] = static_cast(ps->_Sh[_D1] >> xexp | ps->_Sh[_D0] << (16 - xexp)); ps->_Sh[_D0] >>= xexp; } diff --git a/stl/src/xdtest.cpp b/stl/src/xdtest.cpp index 0f680beb896..cc882cab591 100644 --- a/stl/src/xdtest.cpp +++ b/stl/src/xdtest.cpp @@ -8,12 +8,12 @@ _EXTERN_C_UNLESS_PURE _CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Dtest(double* px) { // categorize *px - _Dval* ps = (_Dval*) (char*) px; + const auto ps = reinterpret_cast<_Dval*>(px); if ((ps->_Sh[_D0] & _DMASK) == _DMAX << _DOFF) { - return (short) ((ps->_Sh[_D0] & _DFRAC) != 0 || ps->_Sh[_D1] != 0 || ps->_Sh[_D2] != 0 || ps->_Sh[_D3] != 0 - ? _NANCODE - : _INFCODE); + return static_cast( + (ps->_Sh[_D0] & _DFRAC) != 0 || ps->_Sh[_D1] != 0 || ps->_Sh[_D2] != 0 || ps->_Sh[_D3] != 0 ? _NANCODE + : _INFCODE); } else if ((ps->_Sh[_D0] & ~_DSIGN) != 0 || ps->_Sh[_D1] != 0 || ps->_Sh[_D2] != 0 || ps->_Sh[_D3] != 0) { return (ps->_Sh[_D0] & _DMASK) == 0 ? _DENORM : _FINITE; } else { @@ -22,11 +22,11 @@ _CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Dtest(double* px) { // categorize * } unsigned short* _Plsw(double* px) { // get pointer to lsw - return &((_Dval*) (char*) px)->_Sh[_Dg]; + return &reinterpret_cast<_Dval*>(px)->_Sh[_Dg]; } unsigned short* _Pmsw(double* px) { // get pointer to msw - return &((_Dval*) (char*) px)->_Sh[_D0]; + return &reinterpret_cast<_Dval*>(px)->_Sh[_D0]; } _END_EXTERN_C_UNLESS_PURE diff --git a/stl/src/xdunscal.cpp b/stl/src/xdunscal.cpp index f2581633f5b..eb17a0f1bde 100644 --- a/stl/src/xdunscal.cpp +++ b/stl/src/xdunscal.cpp @@ -8,8 +8,8 @@ _EXTERN_C_UNLESS_PURE short _Dunscale(short* pex, double* px) { // separate *px to 1/2 <= |frac| < 1 and 2^*pex - _Dval* ps = (_Dval*) (char*) px; - short xchar = (ps->_Sh[_D0] & _DMASK) >> _DOFF; + const auto ps = reinterpret_cast<_Dval*>(px); + short xchar = (ps->_Sh[_D0] & _DMASK) >> _DOFF; if (xchar == _DMAX) { // NaN or INF *pex = 0; diff --git a/stl/src/xexp.cpp b/stl/src/xexp.cpp index 8ae1e7bf3fe..a5ffe3bac6d 100644 --- a/stl/src/xexp.cpp +++ b/stl/src/xexp.cpp @@ -25,7 +25,7 @@ _CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp( return _INFCODE; } else { // xexp won't overflow double g = *px * invln2; - short xexp = (short) (g + (g < 0.0 ? -0.5 : +0.5)); + short xexp = static_cast(g + (g < 0.0 ? -0.5 : +0.5)); g = xexp; g = (*px - g * c1) - g * c2; @@ -39,7 +39,7 @@ _CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp( *px = (w + g) / (w - g) * 2.0 * y; --xexp; } - return _Dscale(px, (long) xexp + eoff); + return _Dscale(px, static_cast(xexp) + eoff); } } diff --git a/stl/src/xfdint.cpp b/stl/src/xfdint.cpp index 3f59537660c..d9966ff287b 100644 --- a/stl/src/xfdint.cpp +++ b/stl/src/xfdint.cpp @@ -8,9 +8,8 @@ _EXTERN_C_UNLESS_PURE short _FDint(float* px, short xexp) { // test and drop (scaled) fraction bits - _Fval* ps = (_Fval*) (char*) px; - unsigned short frac; - short xchar = (ps->_Sh[_F0] & _FMASK) >> _FOFF; + const auto ps = reinterpret_cast<_Fval*>(px); + short xchar = (ps->_Sh[_F0] & _FMASK) >> _FOFF; if (xchar == _FMAX) { return (ps->_Sh[_F0] & _FFRAC) == 0 && ps->_Sh[_F1] == 0 ? _INFCODE : _NANCODE; @@ -33,7 +32,7 @@ short _FDint(float* px, short xexp) { // test and drop (scaled) fraction bits 0x0fff, 0x1fff, 0x3fff, 0x7fff}; static const size_t sub[] = {_F1, _F0}; - frac = mask[xchar & 0xf]; + unsigned short frac = mask[xchar & 0xf]; xchar >>= 4; frac &= ps->_Sh[sub[xchar]]; ps->_Sh[sub[xchar]] ^= frac; diff --git a/stl/src/xfdnorm.cpp b/stl/src/xfdnorm.cpp index 752acfb0a73..c9f8322cc83 100644 --- a/stl/src/xfdnorm.cpp +++ b/stl/src/xfdnorm.cpp @@ -9,7 +9,7 @@ _EXTERN_C_UNLESS_PURE short _FDnorm(_Fval* ps) { // normalize float fraction short xchar; - unsigned short sign = (unsigned short) (ps->_Sh[_F0] & _FSIGN); + unsigned short sign = static_cast(ps->_Sh[_F0] & _FSIGN); xchar = 1; if ((ps->_Sh[_F0] &= _FFRAC) != 0 || ps->_Sh[_F1]) { // nonzero, scale @@ -20,11 +20,11 @@ short _FDnorm(_Fval* ps) { // normalize float fraction } for (; ps->_Sh[_F0] < 1 << _FOFF; --xchar) { // shift left by 1 - ps->_Sh[_F0] = (unsigned short) (ps->_Sh[_F0] << 1 | ps->_Sh[_F1] >> 15); + ps->_Sh[_F0] = static_cast(ps->_Sh[_F0] << 1 | ps->_Sh[_F1] >> 15); ps->_Sh[_F1] <<= 1; } for (; 1 << (_FOFF + 1) <= ps->_Sh[_F0]; ++xchar) { // shift right by 1 - ps->_Sh[_F1] = (unsigned short) (ps->_Sh[_F1] >> 1 | ps->_Sh[_F0] << 15); + ps->_Sh[_F1] = static_cast(ps->_Sh[_F1] >> 1 | ps->_Sh[_F0] << 15); ps->_Sh[_F0] >>= 1; } ps->_Sh[_F0] &= _FFRAC; diff --git a/stl/src/xfdscale.cpp b/stl/src/xfdscale.cpp index 29c9ff26446..b6492d3397f 100644 --- a/stl/src/xfdscale.cpp +++ b/stl/src/xfdscale.cpp @@ -8,11 +8,11 @@ _EXTERN_C_UNLESS_PURE short _FDscale(float* px, long lexp) { // scale *px by 2^xexp with checking - _Fval* ps = (_Fval*) (char*) px; - short xchar = (short) ((ps->_Sh[_F0] & _FMASK) >> _FOFF); + const auto ps = reinterpret_cast<_Fval*>(px); + short xchar = static_cast((ps->_Sh[_F0] & _FMASK) >> _FOFF); if (xchar == _FMAX) { - return (short) ((ps->_Sh[_F0] & _FFRAC) != 0 || ps->_Sh[_F1] != 0 ? _NANCODE : _INFCODE); + return static_cast((ps->_Sh[_F0] & _FFRAC) != 0 || ps->_Sh[_F1] != 0 ? _NANCODE : _INFCODE); } else if (xchar == 0 && 0 < (xchar = _FDnorm(ps))) { return 0; } @@ -21,19 +21,19 @@ short _FDscale(float* px, long lexp) { // scale *px by 2^xexp with checking *px = ps->_Sh[_F0] & _FSIGN ? -_FInf._Float : _FInf._Float; return _INFCODE; } else if (-xchar < lexp) { // finite result, repack - ps->_Sh[_F0] = (unsigned short) (ps->_Sh[_F0] & ~_FMASK | (lexp + xchar) << _FOFF); + ps->_Sh[_F0] = static_cast(ps->_Sh[_F0] & ~_FMASK | (lexp + xchar) << _FOFF); return _FINITE; } else { // denormalized, scale - unsigned short sign = (unsigned short) (ps->_Sh[_F0] & _FSIGN); + unsigned short sign = static_cast(ps->_Sh[_F0] & _FSIGN); - ps->_Sh[_F0] = (unsigned short) (1 << _FOFF | ps->_Sh[_F0] & _FFRAC); + ps->_Sh[_F0] = static_cast(1 << _FOFF | ps->_Sh[_F0] & _FFRAC); lexp += xchar - 1; if (lexp < -(16 + 1 + _FOFF) || 0 <= lexp) { // underflow, return +/-0 ps->_Sh[_F0] = sign; ps->_Sh[_F1] = 0; return 0; } else { // nonzero, align fraction - short xexp = (short) lexp; + short xexp = static_cast(lexp); unsigned short psx = 0; if (xexp <= -16) { // scale by words @@ -42,9 +42,9 @@ short _FDscale(float* px, long lexp) { // scale *px by 2^xexp with checking ps->_Sh[_F0] = 0; xexp += 16; } - if ((xexp = (short) -xexp) != 0) { // scale by bits + if ((xexp = static_cast(-xexp)) != 0) { // scale by bits psx = (ps->_Sh[_F1] << (16 - xexp)) | (psx != 0 ? 1 : 0); - ps->_Sh[_F1] = (unsigned short) (ps->_Sh[_F1] >> xexp | ps->_Sh[_F0] << (16 - xexp)); + ps->_Sh[_F1] = static_cast(ps->_Sh[_F1] >> xexp | ps->_Sh[_F0] << (16 - xexp)); ps->_Sh[_F0] >>= xexp; } diff --git a/stl/src/xfdtest.cpp b/stl/src/xfdtest.cpp index af2e5c5cc76..c44e8c43530 100644 --- a/stl/src/xfdtest.cpp +++ b/stl/src/xfdtest.cpp @@ -8,10 +8,10 @@ _EXTERN_C_UNLESS_PURE _CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _FDtest(float* px) { // categorize *px - _Fval* ps = (_Fval*) (char*) px; + const auto ps = reinterpret_cast<_Fval*>(px); if ((ps->_Sh[_F0] & _FMASK) == _FMAX << _FOFF) { - return (short) ((ps->_Sh[_F0] & _FFRAC) != 0 || ps->_Sh[_F1] != 0 ? _NANCODE : _INFCODE); + return static_cast((ps->_Sh[_F0] & _FFRAC) != 0 || ps->_Sh[_F1] != 0 ? _NANCODE : _INFCODE); } else if ((ps->_Sh[_F0] & ~_FSIGN) != 0 || ps->_Sh[_F1] != 0) { return (ps->_Sh[_F0] & _FMASK) == 0 ? _DENORM : _FINITE; } else { @@ -20,11 +20,11 @@ _CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _FDtest(float* px) { // categorize * } unsigned short* _FPlsw(float* px) { // get pointer to lsw - return &((_Fval*) (char*) px)->_Sh[_Fg]; + return &reinterpret_cast<_Fval*>(px)->_Sh[_Fg]; } unsigned short* _FPmsw(float* px) { // get pointer to msw - return &((_Fval*) (char*) px)->_Sh[_F0]; + return &reinterpret_cast<_Fval*>(px)->_Sh[_F0]; } _END_EXTERN_C_UNLESS_PURE diff --git a/stl/src/xfdunsca.cpp b/stl/src/xfdunsca.cpp index 30489ae137f..1cea6634f0d 100644 --- a/stl/src/xfdunsca.cpp +++ b/stl/src/xfdunsca.cpp @@ -8,8 +8,8 @@ _EXTERN_C_UNLESS_PURE short _FDunscale(short* pex, float* px) { // separate *px to 1/2 <= |frac| < 1 and 2^*pex - _Fval* ps = (_Fval*) (char*) px; - short xchar = (ps->_Sh[_F0] & _FMASK) >> _FOFF; + const auto ps = reinterpret_cast<_Fval*>(px); + short xchar = (ps->_Sh[_F0] & _FMASK) >> _FOFF; if (xchar == _FMAX) { // NaN or INF *pex = 0; diff --git a/stl/src/xfexp.cpp b/stl/src/xfexp.cpp index bd344ecfb07..8aec77d935b 100644 --- a/stl/src/xfexp.cpp +++ b/stl/src/xfexp.cpp @@ -24,10 +24,10 @@ _CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _FExp( return _INFCODE; } else { // xexp won't overflow float g = *px * invln2; - short xexp = (short) (g + (g < 0.0F ? -0.5F : +0.5F)); + short xexp = static_cast(g + (g < 0.0F ? -0.5F : +0.5F)); g = xexp; - g = (float) ((*px - g * c1) - g * c2); + g = static_cast((*px - g * c1) - g * c2); if (-_FEps._Float < g && g < _FEps._Float) { *px = y; } else { // g * g worth computing @@ -38,7 +38,7 @@ _CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _FExp( *px = (w + g) / (w - g) * 2.0F * y; --xexp; } - return _FDscale(px, (long) xexp + eoff); + return _FDscale(px, static_cast(xexp) + eoff); } } diff --git a/stl/src/xgetwctype.cpp b/stl/src/xgetwctype.cpp index d12dc2f3b07..b3e444a2376 100644 --- a/stl/src/xgetwctype.cpp +++ b/stl/src/xgetwctype.cpp @@ -16,19 +16,19 @@ _CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Getwctype(wchar_t _Ch, const _Ctypevec* _Ctype) { // return character classification flags for _Ch _CRT_UNUSED(_Ctype); short _Mask; - return (short) (GetStringTypeW(CT_CTYPE1, &_Ch, 1, (LPWORD) &_Mask) == 0 ? 0 : _Mask); + return static_cast(GetStringTypeW(CT_CTYPE1, &_Ch, 1, reinterpret_cast(&_Mask)) == 0 ? 0 : _Mask); } _CRTIMP2_PURE const wchar_t* __CLRCALL_PURE_OR_CDECL _Getwctypes(const wchar_t* _First, const wchar_t* _Last, short* _Dest, const _Ctypevec* _Ctype) { // get mask sequence for elements in [_First, _Last) _CRT_UNUSED(_Ctype); - GetStringTypeW(CT_CTYPE1, _First, (int) (_Last - _First), (LPWORD) _Dest); + GetStringTypeW(CT_CTYPE1, _First, static_cast(_Last - _First), reinterpret_cast(_Dest)); return _Last; } #ifdef MRTDLL _CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Getwctype(unsigned short _Ch, const _Ctypevec* _Ctype) { - return _Getwctype((wchar_t) _Ch, _Ctype); + return _Getwctype(static_cast(_Ch), _Ctype); } _CRTIMP2_PURE const unsigned short* __CLRCALL_PURE_OR_CDECL _Getwctypes( diff --git a/stl/src/xldint.cpp b/stl/src/xldint.cpp index 6139497a449..45747c55d11 100644 --- a/stl/src/xldint.cpp +++ b/stl/src/xldint.cpp @@ -8,7 +8,7 @@ _EXTERN_C_UNLESS_PURE short _LDint(long double* px, short xexp) { // test and drop (scaled) fraction bits -- 64-bit - return _Dint((double*) px, xexp); + return _Dint(reinterpret_cast(px), xexp); } _END_EXTERN_C_UNLESS_PURE diff --git a/stl/src/xldscale.cpp b/stl/src/xldscale.cpp index 541bf146be9..5bc6456b343 100644 --- a/stl/src/xldscale.cpp +++ b/stl/src/xldscale.cpp @@ -8,7 +8,7 @@ _EXTERN_C_UNLESS_PURE short _LDscale(long double* px, long lexp) { // scale *px by 2^lexp with checking -- 64-bit - return _Dscale((double*) px, lexp); + return _Dscale(reinterpret_cast(px), lexp); } _END_EXTERN_C_UNLESS_PURE diff --git a/stl/src/xldtest.cpp b/stl/src/xldtest.cpp index 6fc5daf7827..796c06b9abf 100644 --- a/stl/src/xldtest.cpp +++ b/stl/src/xldtest.cpp @@ -8,15 +8,15 @@ _EXTERN_C_UNLESS_PURE _CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _LDtest(long double* px) { // categorize *px -- 64-bit - return _Dtest((double*) px); + return _Dtest(reinterpret_cast(px)); } unsigned short* _LPlsw(long double* px) { // get pointer to lsw - return &((_Lval*) (char*) px)->_Sh[_L3]; + return &reinterpret_cast<_Lval*>(px)->_Sh[_L3]; } unsigned short* _LPmsw(long double* px) { // get pointer to msw - return &((_Lval*) (char*) px)->_Sh[_L0]; + return &reinterpret_cast<_Lval*>(px)->_Sh[_L0]; } _END_EXTERN_C_UNLESS_PURE diff --git a/stl/src/xldunsca.cpp b/stl/src/xldunsca.cpp index 19aed391e6b..5f4d8d6b2af 100644 --- a/stl/src/xldunsca.cpp +++ b/stl/src/xldunsca.cpp @@ -8,7 +8,7 @@ _EXTERN_C_UNLESS_PURE short _LDunscale(short* pex, long double* px) { // separate *px to 1/2 <= |frac| < 1 and 2^*pex -- 64-bit - return _Dunscale(pex, (double*) px); + return _Dunscale(pex, reinterpret_cast(px)); } _END_EXTERN_C_UNLESS_PURE diff --git a/stl/src/xlexp.cpp b/stl/src/xlexp.cpp index 46275afd763..1fd79d809e7 100644 --- a/stl/src/xlexp.cpp +++ b/stl/src/xlexp.cpp @@ -26,7 +26,7 @@ _CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _LExp( return _INFCODE; } else { // xexp won't overflow long double g = *px * invln2; - short xexp = (short) (g + (g < 0 ? -0.5L : +0.5L)); + short xexp = static_cast(g + (g < 0 ? -0.5L : +0.5L)); g = xexp; g = (*px - g * c1) - g * c2; @@ -40,7 +40,7 @@ _CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _LExp( *px = (w + g) / (w - g) * 2.0L * y; --xexp; } - return _LDscale(px, (long) xexp + eoff); + return _LDscale(px, static_cast(xexp) + eoff); } } diff --git a/stl/src/xlocale.cpp b/stl/src/xlocale.cpp index 2c634d6ce48..24185c36d45 100644 --- a/stl/src/xlocale.cpp +++ b/stl/src/xlocale.cpp @@ -10,29 +10,27 @@ _STD_BEGIN #pragma warning(disable : 4074) #pragma init_seg(compiler) -using _Traits = char_traits; -using _Initer = istreambuf_iterator; -using _Outiter = ostreambuf_iterator; - // facets associated with C categories -#define ADDFAC(Facet, cat, ptrimp, ptrloc) \ - if ((_CATMASK(Facet::_Getcat()) & cat) == 0) { \ - ; \ - } else if (ptrloc == nullptr) { \ - ptrimp->_Addfac(new Facet(lobj), Facet::id); \ - } else { \ - ptrimp->_Addfac((locale::facet*) &_STD use_facet(*ptrloc), Facet::id); \ +#define ADDFAC(Facet, cat, ptrimp, ptrloc) \ + if ((_CATMASK(Facet::_Getcat()) & cat) == 0) { \ + ; \ + } else if (ptrloc == nullptr) { \ + ptrimp->_Addfac(new Facet(lobj), Facet::id); \ + } else { \ + ptrimp->_Addfac( \ + const_cast(static_cast(&_STD use_facet(*ptrloc))), \ + Facet::id); \ } // moved from locale to ease subsetting using _Tx1 = collate; using _Tx2 = messages; -using _Tx3 = money_get; -using _Tx4 = money_put; +using _Tx3 = money_get; +using _Tx4 = money_put; using _Tx5 = moneypunct; using _Tx6 = moneypunct; -using _Tx7 = time_get; -using _Tx8 = time_put; +using _Tx7 = time_get; +using _Tx8 = time_put; void __CLRCALL_OR_CDECL locale::_Locimp::_Makexloc(const _Locinfo& lobj, locale::category cat, _Locimp* ptrimp, const locale* ptrloc) { // setup exotic char part of a new locale diff --git a/stl/src/xmath.hpp b/stl/src/xmath.hpp index 0ae87457a0b..32bd8b60f7b 100644 --- a/stl/src/xmath.hpp +++ b/stl/src/xmath.hpp @@ -15,25 +15,25 @@ #define _D3 0 // IEEE 754 double properties -#define HUGE_EXP (int) (_DMAX * 900L / 1000) +#define HUGE_EXP static_cast(_DMAX * 900L / 1000) // IEEE 754 float properties -#define FHUGE_EXP (int) (_FMAX * 900L / 1000) +#define FHUGE_EXP static_cast(_FMAX * 900L / 1000) #define _F0 1 // little-endian #define _F1 0 // IEEE 754 long double properties -#define LHUGE_EXP (int) (_LMAX * 900L / 1000) +#define LHUGE_EXP static_cast(_LMAX * 900L / 1000) #define _L0 3 // little-endian, 64-bit long doubles #define _L1 2 #define _L2 1 #define _L3 0 -#define DSIGN(x) (((_Dval*) (char*) &(x))->_Sh[_D0] & _DSIGN) -#define FSIGN(x) (((_Fval*) (char*) &(x))->_Sh[_F0] & _FSIGN) -#define LSIGN(x) (((_Lval*) (char*) &(x))->_Sh[_L0] & _LSIGN) +#define DSIGN(x) (reinterpret_cast<_Dval*>(&(x))->_Sh[_D0] & _DSIGN) +#define FSIGN(x) (reinterpret_cast<_Fval*>(&(x))->_Sh[_F0] & _FSIGN) +#define LSIGN(x) (reinterpret_cast<_Lval*>(&(x))->_Sh[_L0] & _LSIGN) #define _Fg _F1 // least-significant 16-bit word #define _Dg _D3 diff --git a/stl/src/xnotify.cpp b/stl/src/xnotify.cpp index c3e87255399..bf362c717ea 100644 --- a/stl/src/xnotify.cpp +++ b/stl/src/xnotify.cpp @@ -39,16 +39,16 @@ void _Cnd_register_at_thread_exit( _At_thread_exit_block* block = &_Thread_exit_data; _Lock_at_thread_exit_mutex(); - while (block != 0) { // loop through list of blocks + while (block != nullptr) { // loop through list of blocks if (block->num_used == _Nitems) { // block is full; move to next block and allocate - if (block->next == 0) { - block->next = (_At_thread_exit_block*) calloc(1, sizeof(_At_thread_exit_block)); + if (block->next == nullptr) { + block->next = static_cast<_At_thread_exit_block*>(calloc(1, sizeof(_At_thread_exit_block))); } block = block->next; } else { // found block with available space for (int i = 0; i < _Nitems; ++i) { // find empty slot - if (block->data[i].mtx == 0) { // store into empty slot + if (block->data[i].mtx == nullptr) { // store into empty slot block->data[i].id._Id = GetCurrentThreadId(); block->data[i].mtx = mtx; block->data[i].cnd = cnd; @@ -57,7 +57,7 @@ void _Cnd_register_at_thread_exit( break; } } - block = 0; + block = nullptr; } } _Unlock_at_thread_exit_mutex(); @@ -68,10 +68,10 @@ void _Cnd_unregister_at_thread_exit(_Mtx_t mtx) { // unregister condition variab _At_thread_exit_block* block = &_Thread_exit_data; _Lock_at_thread_exit_mutex(); - while (block != 0) { // loop through list of blocks + while (block != nullptr) { // loop through list of blocks for (int i = 0; block->num_used != 0 && i < _Nitems; ++i) { if (block->data[i].mtx == mtx) { // release slot - block->data[i].mtx = 0; + block->data[i].mtx = nullptr; --block->num_used; } } @@ -87,15 +87,15 @@ void _Cnd_do_broadcast_at_thread_exit() { // notify condition variables waiting const unsigned int currentThreadId = _Thrd_id(); _Lock_at_thread_exit_mutex(); - while (block != 0) { // loop through list of blocks + while (block != nullptr) { // loop through list of blocks for (int i = 0; block->num_used != 0 && i < _Nitems; ++i) { - if (block->data[i].mtx != 0 && block->data[i].id._Id == currentThreadId) { // notify and release slot + if (block->data[i].mtx != nullptr && block->data[i].id._Id == currentThreadId) { // notify and release slot if (block->data[i].res) { *block->data[i].res = 1; } _Mtx_unlock(block->data[i].mtx); _Cnd_broadcast(block->data[i].cnd); - block->data[i].mtx = 0; + block->data[i].mtx = nullptr; --block->num_used; } } diff --git a/stl/src/xonce.cpp b/stl/src/xonce.cpp index ecec8cf53b3..5c6a5f9c2f9 100644 --- a/stl/src/xonce.cpp +++ b/stl/src/xonce.cpp @@ -14,7 +14,7 @@ _CRTIMP2_PURE int __CLRCALL_PURE_OR_CDECL _Execute_once( static_assert(sizeof(_Flag._Opaque) == sizeof(INIT_ONCE), "invalid size"); return __crtInitOnceExecuteOnce( - reinterpret_cast(&_Flag._Opaque), reinterpret_cast(_Callback), _Pv, 0); + reinterpret_cast(&_Flag._Opaque), reinterpret_cast(_Callback), _Pv, nullptr); } [[noreturn]] _CRTIMP2_PURE void __CLRCALL_PURE_OR_CDECL diff --git a/stl/src/xstod.cpp b/stl/src/xstod.cpp index 32237e76fb8..821cd15fb8a 100644 --- a/stl/src/xstod.cpp +++ b/stl/src/xstod.cpp @@ -18,7 +18,7 @@ _CRTIMP2_PURE FTYPE __CLRCALL_PURE_OR_CDECL _Stodx(const CTYPE* s, CTYPE** endpt _CRTIMP2_PURE FTYPE __CLRCALL_PURE_OR_CDECL _Stod(const CTYPE* s, CTYPE** endptr, long pten) { // convert string, discard error code - return _Stodx(s, endptr, pten, 0); + return _Stodx(s, endptr, pten, nullptr); } _END_EXTERN_C_UNLESS_PURE diff --git a/stl/src/xstof.cpp b/stl/src/xstof.cpp index 0c1b790cc76..0c98e1a855f 100644 --- a/stl/src/xstof.cpp +++ b/stl/src/xstof.cpp @@ -18,7 +18,7 @@ _CRTIMP2_PURE FTYPE __CLRCALL_PURE_OR_CDECL _Stofx(const CTYPE* s, CTYPE** endpt _CRTIMP2_PURE FTYPE __CLRCALL_PURE_OR_CDECL _Stof(const CTYPE* s, CTYPE** endptr, long pten) { // convert string, discard error code - return _Stofx(s, endptr, pten, 0); + return _Stofx(s, endptr, pten, nullptr); } _END_EXTERN_C_UNLESS_PURE diff --git a/stl/src/xstoflt.cpp b/stl/src/xstoflt.cpp index 3bdc27591c8..98c203cdd7a 100644 --- a/stl/src/xstoflt.cpp +++ b/stl/src/xstoflt.cpp @@ -36,9 +36,9 @@ int _Stoflt(const char* s0, const char* s, char** endptr, long lo[], ++s; } - while (isdigit((unsigned char) *s)) { + while (isdigit(static_cast(*s))) { if (nsig < maxsig) { - buf[nsig++] = (char) (*s - '0'); // accumulate a digit + buf[nsig++] = static_cast(*s - '0'); // accumulate a digit } else { // just scale exponent and note nonzero digits ++lo[0]; if (*s != '0') { @@ -60,9 +60,9 @@ int _Stoflt(const char* s0, const char* s, char** endptr, long lo[], } } - for (; isdigit((unsigned char) *s); ++s, seen = 1) { + for (; isdigit(static_cast(*s)); ++s, seen = 1) { if (nsig < maxsig) { // accumulate a fraction digit - buf[nsig++] = (char) (*s - '0'); + buf[nsig++] = static_cast(*s - '0'); --lo[0]; } else if (*s != '0') { sticky = 1; @@ -100,9 +100,9 @@ int _Stoflt(const char* s0, const char* s, char** endptr, long lo[], int eseen = 0; long lexp = 0; - for (; isdigit((unsigned char) *s); ++s, eseen = 1) { + for (; isdigit(static_cast(*s)); ++s, eseen = 1) { if (lexp < 100000000) { // else overflow - lexp = lexp * 10 + (unsigned char) *s - '0'; + lexp = lexp * 10 + static_cast(*s) - '0'; } } @@ -122,7 +122,7 @@ int _Stoflt(const char* s0, const char* s, char** endptr, long lo[], } if (endptr) { - *endptr = (char*) (seen ? s : s0); // roll back if bad parse + *endptr = const_cast(seen ? s : s0); // roll back if bad parse } return word; diff --git a/stl/src/xstol.cpp b/stl/src/xstol.cpp index 700fa84c5b6..35a9e052fee 100644 --- a/stl/src/xstol.cpp +++ b/stl/src/xstol.cpp @@ -23,32 +23,32 @@ _CRTIMP2_PURE long __CLRCALL_PURE_OR_CDECL _Stolx( char sign; unsigned long x; - if (endptr == 0) { + if (endptr == nullptr) { endptr = &se; } sc = s; - while (isspace((unsigned char) *sc)) { + while (isspace(static_cast(*sc))) { ++sc; } sign = *sc == '-' || *sc == '+' ? *sc++ : '+'; x = _Stoulx(sc, endptr, base, perr); if (sc == *endptr) { - *endptr = (char*) s; + *endptr = const_cast(s); } if (s == *endptr && x != 0 || sign == '+' && LONG_MAX < x - || sign == '-' && 0 - (unsigned long) LONG_MIN < x) { // overflow + || sign == '-' && 0 - static_cast(LONG_MIN) < x) { // overflow errno = ERANGE; - if (perr != 0) { + if (perr != nullptr) { *perr = 1; } return sign == '-' ? LONG_MIN : LONG_MAX; } - return (long) (sign == '-' ? 0 - x : x); + return static_cast(sign == '-' ? 0 - x : x); } _END_EXTERN_C_UNLESS_PURE diff --git a/stl/src/xstold.cpp b/stl/src/xstold.cpp index 55057b9f464..f8a66cb8827 100644 --- a/stl/src/xstold.cpp +++ b/stl/src/xstold.cpp @@ -18,7 +18,7 @@ _CRTIMP2_PURE FTYPE __CLRCALL_PURE_OR_CDECL _Stoldx(const CTYPE* s, CTYPE** endp _CRTIMP2_PURE FTYPE __CLRCALL_PURE_OR_CDECL _Stold(const CTYPE* s, CTYPE** endptr, long pten) { // convert string, discard error code - return _Stoldx(s, endptr, pten, 0); + return _Stoldx(s, endptr, pten, nullptr); } _END_EXTERN_C_UNLESS_PURE diff --git a/stl/src/xstoll.cpp b/stl/src/xstoll.cpp index fda3e0e9b3f..af01eeb597c 100644 --- a/stl/src/xstoll.cpp +++ b/stl/src/xstoll.cpp @@ -21,37 +21,37 @@ _CRTIMP2_PURE long long __CLRCALL_PURE_OR_CDECL _Stollx( char sign; unsigned long long x; - if (endptr == 0) { + if (endptr == nullptr) { endptr = &se; } sc = s; - while (isspace((unsigned char) *sc)) { + while (isspace(static_cast(*sc))) { ++sc; } - sign = (char) (*sc == '-' || *sc == '+' ? *sc++ : '+'); + sign = static_cast(*sc == '-' || *sc == '+' ? *sc++ : '+'); x = _Stoullx(sc, endptr, base, perr); if (sc == *endptr) { - *endptr = (char*) s; + *endptr = const_cast(s); } if (s == *endptr && x != 0 || sign == '+' && LLONG_MAX < x - || sign == '-' && 0 - (unsigned long long) LLONG_MIN < x) { // overflow + || sign == '-' && 0 - static_cast(LLONG_MIN) < x) { // overflow errno = ERANGE; - if (perr != 0) { + if (perr != nullptr) { *perr = 1; } return sign == '-' ? LLONG_MIN : LLONG_MAX; } - return (long long) (sign == '-' ? 0 - x : x); + return static_cast(sign == '-' ? 0 - x : x); } _CRTIMP2_PURE long long(__CLRCALL_PURE_OR_CDECL _Stoll)( const char* s, char** endptr, int base) { // convert string, discard error code - return _Stollx(s, endptr, base, 0); + return _Stollx(s, endptr, base, nullptr); } _END_EXTERN_C_UNLESS_PURE diff --git a/stl/src/xstopfx.cpp b/stl/src/xstopfx.cpp index a33b5054d28..b9d44fe14b6 100644 --- a/stl/src/xstopfx.cpp +++ b/stl/src/xstopfx.cpp @@ -13,7 +13,7 @@ int _Stopfx(const char** ps, char** endptr) { // parse prefix of floating-point const char* s = *ps; int code = 0; - while (isspace((unsigned char) *s)) { + while (isspace(static_cast(*s))) { ++s; } @@ -35,15 +35,15 @@ int _Stopfx(const char** ps, char** endptr) { // parse prefix of floating-point if (*q == '(') { // got '(', skip through ')' do { ++q; - } while (isalnum((unsigned char) *q) || *q == '_'); + } while (isalnum(static_cast(*q)) || *q == '_'); if (*q == ')') { s = ++q; } } } - if (endptr != 0) { - *endptr = (char*) s; + if (endptr != nullptr) { + *endptr = const_cast(s); } } else if (*s == 'i' || *s == 'I') { // parse "inf" or fail if ((*++s != 'n' && *s != 'N') || (*++s != 'f' && *s != 'F')) { // parse failed, roll back pointer @@ -62,8 +62,8 @@ int _Stopfx(const char** ps, char** endptr) { // parse prefix of floating-point } } - if (endptr != 0) { - *endptr = (char*) s; + if (endptr != nullptr) { + *endptr = const_cast(s); } } else if (*s == '0' && (s[1] == 'x' || s[1] == 'X')) { // test for valid hex field following 0x or 0X const char* s1 = s + 2; @@ -71,7 +71,7 @@ int _Stopfx(const char** ps, char** endptr) { // parse prefix of floating-point ++s1; } - if (isxdigit((unsigned char) *s1)) { + if (isxdigit(static_cast(*s1))) { s += 2; code |= FL_HEX; } else { diff --git a/stl/src/xstoul.cpp b/stl/src/xstoul.cpp index c6f56229410..7e36fa0bf4b 100644 --- a/stl/src/xstoul.cpp +++ b/stl/src/xstoul.cpp @@ -21,15 +21,9 @@ constexpr int _Base_max = 36; // largest valid base static const char digits[] = // valid digits "0123456789abcdefghijklmnopqrstuvwxyz"; -#if (ULONG_MAX >> 16) >> 16 == 0xffffffff -// 64-bits! -static const char ndigs[_Base_max + 1] = {0, 0, 65, 41, 33, 28, 25, 23, 22, 21, 20, 19, 18, 18, 17, 17, 17, 16, 16, 16, - 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13}; -#else // (ULONG_MAX >> 16) >> 16 == 0xffffffff // 32-bits! static const char ndigs[_Base_max + 1] = {0, 0, 33, 21, 17, 14, 13, 12, 11, 11, 10, 10, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7}; -#endif // (ULONG_MAX >> 16) >> 16 == 0xffffffff _CRTIMP2_PURE unsigned long __CLRCALL_PURE_OR_CDECL _Stoulx( const char* s, char** endptr, int base, int* perr) { // convert string to unsigned long, with checking @@ -43,19 +37,19 @@ _CRTIMP2_PURE unsigned long __CLRCALL_PURE_OR_CDECL _Stoulx( unsigned long x; unsigned long y; - if (perr != 0) { + if (perr != nullptr) { *perr = 0; } sc = s; - while (isspace((unsigned char) *sc)) { + while (isspace(static_cast(*sc))) { ++sc; } sign = *sc == '-' || *sc == '+' ? *sc++ : '+'; if (base < 0 || base == 1 || _Base_max < base) { // silly base - if (endptr != 0) { - *endptr = (char*) s; + if (endptr != nullptr) { + *endptr = const_cast(s); } return 0; @@ -80,15 +74,16 @@ _CRTIMP2_PURE unsigned long __CLRCALL_PURE_OR_CDECL _Stoulx( } x = 0; - for (s2 = sc, y = 0; (sd = (char*) memchr(&digits[0], tolower(*sc), base)) != 0; ++sc) { // accumulate digits + for (s2 = sc, y = 0; (sd = static_cast(memchr(&digits[0], tolower(*sc), base))) != 0; + ++sc) { // accumulate digits y = x; - dig = (char) (sd - digits); // for overflow checking + dig = static_cast(sd - digits); // for overflow checking x = x * base + dig; } if (s1 == sc) { // check string validity - if (endptr != 0) { - *endptr = (char*) s; + if (endptr != nullptr) { + *endptr = const_cast(s); } return 0; @@ -97,7 +92,7 @@ _CRTIMP2_PURE unsigned long __CLRCALL_PURE_OR_CDECL _Stoulx( n = sc - s2 - ndigs[base]; if (n >= 0 && (0 < n || x < x - dig || (x - dig) / base != y)) { // overflow errno = ERANGE; - if (perr != 0) { + if (perr != nullptr) { *perr = 1; } @@ -109,8 +104,8 @@ _CRTIMP2_PURE unsigned long __CLRCALL_PURE_OR_CDECL _Stoulx( x = 0 - x; } - if (endptr != 0) { - *endptr = (char*) sc; + if (endptr != nullptr) { + *endptr = const_cast(sc); } return x; @@ -118,7 +113,7 @@ _CRTIMP2_PURE unsigned long __CLRCALL_PURE_OR_CDECL _Stoulx( _CRTIMP2_PURE unsigned long __CLRCALL_PURE_OR_CDECL _Stoul( const char* s, char** endptr, int base) { // convert string, discard error code - return _Stoulx(s, endptr, base, 0); + return _Stoulx(s, endptr, base, nullptr); } _END_EXTERN_C_UNLESS_PURE diff --git a/stl/src/xstoull.cpp b/stl/src/xstoull.cpp index b33d0797eb6..5875fb47809 100644 --- a/stl/src/xstoull.cpp +++ b/stl/src/xstoull.cpp @@ -35,19 +35,19 @@ _CRTIMP2_PURE unsigned long long __CLRCALL_PURE_OR_CDECL _Stoullx( unsigned long long x; unsigned long long y; - if (perr != 0) { + if (perr != nullptr) { *perr = 0; } sc = s; - while (isspace((unsigned char) *sc)) { + while (isspace(static_cast(*sc))) { ++sc; } - sign = (char) (*sc == '-' || *sc == '+' ? *sc++ : '+'); + sign = static_cast(*sc == '-' || *sc == '+' ? *sc++ : '+'); if (base < 0 || base == 1 || _Base_max < base) { // silly base - if (endptr != 0) { - *endptr = (char*) s; + if (endptr != nullptr) { + *endptr = const_cast(s); } return 0; @@ -70,16 +70,16 @@ _CRTIMP2_PURE unsigned long long __CLRCALL_PURE_OR_CDECL _Stoullx( } x = 0; - for (s2 = sc, y = 0, dig = 0; (sd = (char*) memchr(&digits[0], tolower(*sc), base)) != 0; + for (s2 = sc, y = 0, dig = 0; (sd = static_cast(memchr(&digits[0], tolower(*sc), base))) != 0; ++sc) { // accumulate digits y = x; - dig = (char) (sd - digits); // for overflow checking + dig = static_cast(sd - digits); // for overflow checking x = x * base + dig; } if (s1 == sc) { // check string validity - if (endptr != 0) { - *endptr = (char*) s; + if (endptr != nullptr) { + *endptr = const_cast(s); } return 0; @@ -88,7 +88,7 @@ _CRTIMP2_PURE unsigned long long __CLRCALL_PURE_OR_CDECL _Stoullx( n = sc - s2 - ndigs[base]; if (n >= 0 && (0 < n || x < x - dig || (x - dig) / base != y)) { // overflow errno = ERANGE; - if (perr != 0) { + if (perr != nullptr) { *perr = 1; } @@ -100,8 +100,8 @@ _CRTIMP2_PURE unsigned long long __CLRCALL_PURE_OR_CDECL _Stoullx( x = 0 - x; } - if (endptr != 0) { - *endptr = (char*) sc; + if (endptr != nullptr) { + *endptr = const_cast(sc); } return x; @@ -109,7 +109,7 @@ _CRTIMP2_PURE unsigned long long __CLRCALL_PURE_OR_CDECL _Stoullx( _CRTIMP2_PURE unsigned long long __CLRCALL_PURE_OR_CDECL _Stoull( const char* s, char** endptr, int base) { // convert string, discard error code - return _Stoullx(s, endptr, base, 0); + return _Stoullx(s, endptr, base, nullptr); } _END_EXTERN_C_UNLESS_PURE diff --git a/stl/src/xstoxflt.cpp b/stl/src/xstoxflt.cpp index c60fb72d265..7ef6b4d2018 100644 --- a/stl/src/xstoxflt.cpp +++ b/stl/src/xstoxflt.cpp @@ -41,7 +41,7 @@ int _Stoxflt(const char* s0, const char* s, char** endptr, long lo[], seen = 1; } - while ((pd = (char*) memchr(&digits[0], *s, 22)) != 0) { + while ((pd = static_cast(memchr(&digits[0], *s, 22))) != 0) { if (nsig <= maxsig) { buf[nsig++] = vals[pd - digits]; // accumulate a digit } else { @@ -62,7 +62,7 @@ int _Stoxflt(const char* s0, const char* s, char** endptr, long lo[], } } - for (; (pd = (char*) memchr(&digits[0], *s, 22)) != 0; ++s, seen = 1) { + for (; (pd = static_cast(memchr(&digits[0], *s, 22))) != 0; ++s, seen = 1) { if (nsig <= maxsig) { // accumulate a fraction digit buf[nsig++] = vals[pd - digits]; --lo[0]; @@ -106,9 +106,9 @@ int _Stoxflt(const char* s0, const char* s, char** endptr, long lo[], int eseen = 0; long lexp = 0; - for (; isdigit((unsigned char) *s); ++s, eseen = 1) { + for (; isdigit(static_cast(*s)); ++s, eseen = 1) { if (lexp < 100000000) { // else overflow - lexp = lexp * 10 + (unsigned char) *s - '0'; + lexp = lexp * 10 + static_cast(*s) - '0'; } } @@ -128,7 +128,7 @@ int _Stoxflt(const char* s0, const char* s, char** endptr, long lo[], } if (endptr) { - *endptr = (char*) (seen ? s : s0); // roll back if bad parse + *endptr = const_cast(seen ? s : s0); // roll back if bad parse } return word; diff --git a/stl/src/xtime.cpp b/stl/src/xtime.cpp index 5f1c7f1526f..0de318718d8 100644 --- a/stl/src/xtime.cpp +++ b/stl/src/xtime.cpp @@ -73,7 +73,7 @@ long _Xtime_diff_to_millis(const xtime* xt) { // convert time to milliseconds } int xtime_get(xtime* xt, int type) { // get current time - if (type != TIME_UTC || xt == 0) { + if (type != TIME_UTC || xt == nullptr) { type = 0; } else { sys_get_time(xt); diff --git a/stl/src/xtowlower.cpp b/stl/src/xtowlower.cpp index 8467d22ccb6..630f148bc69 100644 --- a/stl/src/xtowlower.cpp +++ b/stl/src/xtowlower.cpp @@ -16,7 +16,7 @@ _CRTIMP2_PURE wchar_t __CLRCALL_PURE_OR_CDECL _Towlower( if (_Ch != WEOF) { if (_Ctype->_LocaleName == nullptr && _Ch < 256) { // handle ASCII character in C locale if (L'A' <= _Ch && _Ch <= L'Z') { - _Res = (wchar_t)(_Ch - L'A' + L'a'); + _Res = static_cast(_Ch - L'A' + L'a'); } } else if (__crtLCMapStringW(_Ctype->_LocaleName, LCMAP_LOWERCASE, &_Ch, 1, &_Res, 1) == 0) { _Res = _Ch; @@ -28,7 +28,7 @@ _CRTIMP2_PURE wchar_t __CLRCALL_PURE_OR_CDECL _Towlower( #ifdef MRTDLL _CRTIMP2_PURE unsigned short __CLRCALL_PURE_OR_CDECL _Towlower(unsigned short _Ch, const _Ctypevec* _Ctype) { - return _Towlower((wchar_t) _Ch, _Ctype); + return _Towlower(static_cast(_Ch), _Ctype); } #endif diff --git a/stl/src/xtowupper.cpp b/stl/src/xtowupper.cpp index ed9c28ef5ca..84901eae6ef 100644 --- a/stl/src/xtowupper.cpp +++ b/stl/src/xtowupper.cpp @@ -16,7 +16,7 @@ _CRTIMP2_PURE wchar_t __CLRCALL_PURE_OR_CDECL _Towupper( if (_Ch != WEOF) { if (_Ctype->_LocaleName == nullptr && _Ch < 256) { // handle ASCII character in C locale if (L'a' <= _Ch && _Ch <= L'z') { - _Res = (wchar_t)(_Ch - L'a' + L'A'); + _Res = static_cast(_Ch - L'a' + L'A'); } } else if (__crtLCMapStringW(_Ctype->_LocaleName, LCMAP_UPPERCASE, &_Ch, 1, &_Res, 1) == 0) { _Res = _Ch; @@ -28,7 +28,7 @@ _CRTIMP2_PURE wchar_t __CLRCALL_PURE_OR_CDECL _Towupper( #ifdef MRTDLL _CRTIMP2_PURE unsigned short __CLRCALL_PURE_OR_CDECL _Towupper(unsigned short _Ch, const _Ctypevec* _Ctype) { - return _Towupper((wchar_t) _Ch, _Ctype); + return _Towupper(static_cast(_Ch), _Ctype); } #endif diff --git a/stl/src/xwctomb.cpp b/stl/src/xwctomb.cpp index 6f696b7edd1..2c94e37da6a 100644 --- a/stl/src/xwctomb.cpp +++ b/stl/src/xwctomb.cpp @@ -49,10 +49,9 @@ _CRTIMP2_PURE int __CLRCALL_PURE_OR_CDECL _Wcrtomb(char* s, wchar_t wchar, mbsta return -1; } - *s = (char) wchar; + *s = static_cast(wchar); return sizeof(char); } else { - int size; BOOL defused = 0; _Cvtvec cvtvec; @@ -61,8 +60,8 @@ _CRTIMP2_PURE int __CLRCALL_PURE_OR_CDECL _Wcrtomb(char* s, wchar_t wchar, mbsta ploc = &cvtvec; } - if (((size = WideCharToMultiByte(ploc->_Page, 0, &wchar, 1, s, ploc->_Mbcurmax, nullptr, &defused)) == 0) - || (defused)) { + const int size = WideCharToMultiByte(ploc->_Page, 0, &wchar, 1, s, ploc->_Mbcurmax, nullptr, &defused); + if (size == 0 || defused) { errno = EILSEQ; return -1; } @@ -73,7 +72,7 @@ _CRTIMP2_PURE int __CLRCALL_PURE_OR_CDECL _Wcrtomb(char* s, wchar_t wchar, mbsta #ifdef MRTDLL _CRTIMP2_PURE int __CLRCALL_PURE_OR_CDECL _Wcrtomb(char* s, unsigned short wchar, mbstate_t* pst, const _Cvtvec* ploc) { - return _Wcrtomb(s, (wchar_t) wchar, pst, ploc); + return _Wcrtomb(s, static_cast(wchar), pst, ploc); } #endif // MRTDLL diff --git a/stl/src/xwstod.cpp b/stl/src/xwstod.cpp index 7332252de8f..499d19e2852 100644 --- a/stl/src/xwstod.cpp +++ b/stl/src/xwstod.cpp @@ -17,7 +17,7 @@ _CRTIMP2_PURE FTYPE __CLRCALL_PURE_OR_CDECL _WStodx(const CTYPE* s, CTYPE** endp _CRTIMP2_PURE FTYPE __CLRCALL_PURE_OR_CDECL _WStod(const CTYPE* s, CTYPE** endptr, long pten) { // convert string, discard error code - return _WStodx(s, endptr, pten, 0); + return _WStodx(s, endptr, pten, nullptr); } _END_EXTERN_C_UNLESS_PURE diff --git a/stl/src/xwstof.cpp b/stl/src/xwstof.cpp index aaaf3c28c46..cbe81b4f3f0 100644 --- a/stl/src/xwstof.cpp +++ b/stl/src/xwstof.cpp @@ -16,7 +16,7 @@ _CRTIMP2_PURE FTYPE __CLRCALL_PURE_OR_CDECL _WStofx(const CTYPE* s, CTYPE** endp _CRTIMP2_PURE FTYPE __CLRCALL_PURE_OR_CDECL _WStof(const CTYPE* s, CTYPE** endptr, long pten) { // convert string, discard error code - return _WStofx(s, endptr, pten, 0); + return _WStofx(s, endptr, pten, nullptr); } _END_EXTERN_C_UNLESS_PURE diff --git a/stl/src/xwstoflt.cpp b/stl/src/xwstoflt.cpp index a24c70b6bfd..7f5f3fddac4 100644 --- a/stl/src/xwstoflt.cpp +++ b/stl/src/xwstoflt.cpp @@ -37,7 +37,7 @@ int _WStoflt(const wchar_t* s0, const wchar_t* s, wchar_t** endptr, long lo[], while (iswdigit(*s)) { if (nsig <= maxsig) { - buf[nsig++] = (char) (*s - L'0'); // accumulate a digit + buf[nsig++] = static_cast(*s - L'0'); // accumulate a digit } else { ++lo[0]; // too many digits, just scale exponent } @@ -60,7 +60,7 @@ int _WStoflt(const wchar_t* s0, const wchar_t* s, wchar_t** endptr, long lo[], while (iswdigit(*s)) { if (nsig <= maxsig) { // accumulate a fraction digit - buf[nsig++] = (char) (*s - L'0'); + buf[nsig++] = static_cast(*s - L'0'); --lo[0]; } @@ -126,7 +126,7 @@ int _WStoflt(const wchar_t* s0, const wchar_t* s, wchar_t** endptr, long lo[], } if (endptr) { - *endptr = (wchar_t*) (seen ? s : s0); // roll back if bad parse + *endptr = const_cast(seen ? s : s0); // roll back if bad parse } return word; diff --git a/stl/src/xwstold.cpp b/stl/src/xwstold.cpp index d8dcc0cdb51..e00bb8194aa 100644 --- a/stl/src/xwstold.cpp +++ b/stl/src/xwstold.cpp @@ -16,7 +16,7 @@ _CRTIMP2_PURE FTYPE __CLRCALL_PURE_OR_CDECL _WStoldx(const CTYPE* s, CTYPE** end _CRTIMP2_PURE FTYPE __CLRCALL_PURE_OR_CDECL _WStold(const CTYPE* s, CTYPE** endptr, long pten) { // convert string, discard error code - return _WStoldx(s, endptr, pten, 0); + return _WStoldx(s, endptr, pten, nullptr); } _END_EXTERN_C_UNLESS_PURE diff --git a/stl/src/xwstopfx.cpp b/stl/src/xwstopfx.cpp index 788efb4f0e5..b3d74711b4d 100644 --- a/stl/src/xwstopfx.cpp +++ b/stl/src/xwstopfx.cpp @@ -41,8 +41,8 @@ int _WStopfx(const wchar_t** ps, wchar_t** endptr) { // parse prefix of floating } } - if (endptr != 0) { - *endptr = (wchar_t*) s; + if (endptr != nullptr) { + *endptr = const_cast(s); } } else if (*s == L'i' || *s == L'I') { // parse "inf" or fail if ((*++s != L'n' && *s != L'N') || (*++s != L'f' && *s != L'F')) { // parse failed, roll back pointer @@ -60,8 +60,8 @@ int _WStopfx(const wchar_t** ps, wchar_t** endptr) { // parse prefix of floating } } - if (endptr != 0) { - *endptr = (wchar_t*) s; + if (endptr != nullptr) { + *endptr = const_cast(s); } } else if (*s == L'0' && (s[1] == L'x' || s[1] == L'X')) { // test for valid hex field following 0x or 0X const wchar_t* s1 = s + 2; diff --git a/stl/src/xwstoxfl.cpp b/stl/src/xwstoxfl.cpp index 2415692cb28..f694b9bd201 100644 --- a/stl/src/xwstoxfl.cpp +++ b/stl/src/xwstoxfl.cpp @@ -43,7 +43,7 @@ int _WStoxflt(const wchar_t* s0, const wchar_t* s, wchar_t** endptr, long lo[], seen = 1; } - while ((pd = (wchar_t*) wmemchr(&digits[0], *s, 22)) != 0) { + while ((pd = wmemchr(&digits[0], *s, 22)) != nullptr) { if (nsig <= maxsig) { buf[nsig++] = vals[pd - digits]; // accumulate a digit } else { @@ -64,7 +64,7 @@ int _WStoxflt(const wchar_t* s0, const wchar_t* s, wchar_t** endptr, long lo[], } } - while ((pd = (wchar_t*) wmemchr(&digits[0], *s, 22)) != 0) { + while ((pd = wmemchr(&digits[0], *s, 22)) != nullptr) { if (nsig <= maxsig) { // accumulate a fraction digit buf[nsig++] = vals[pd - digits]; --lo[0]; @@ -133,7 +133,7 @@ int _WStoxflt(const wchar_t* s0, const wchar_t* s, wchar_t** endptr, long lo[], } if (endptr) { - *endptr = (wchar_t*) (seen ? s : s0); // roll back if bad parse + *endptr = const_cast(seen ? s : s0); // roll back if bad parse } return word; diff --git a/stl/src/xxstod.hpp b/stl/src/xxstod.hpp index 8223e9a2808..25f93fb7f47 100644 --- a/stl/src/xxstod.hpp +++ b/stl/src/xxstod.hpp @@ -29,7 +29,7 @@ extern FTYPE FNAME(Dtento)(FTYPE*, long, int*); - if (perr != 0) { + if (perr != nullptr) { *perr = 0; } diff --git a/stl/src/xxxdtent.hpp b/stl/src/xxxdtent.hpp index 31ba1e2711d..d4272282673 100644 --- a/stl/src/xxxdtent.hpp +++ b/stl/src/xxxdtent.hpp @@ -20,10 +20,10 @@ _EXTERN_C static const FTYPE tenth[] = { // 53-bit: 0.100000 - (FTYPE)(FLIT(6710886.0) / FRAC_BITS), - (FTYPE)(FLIT(26843545.0) / FRAC_BITS_2), - (FTYPE)(FLIT(40265318.0) / FRAC_BITS_2 / FRAC_BITS), - (FTYPE)(FLIT(26843545.0) / FRAC_BITS_2 / FRAC_BITS_2), + static_cast(FLIT(6710886.0) / FRAC_BITS), + static_cast(FLIT(26843545.0) / FRAC_BITS_2), + static_cast(FLIT(40265318.0) / FRAC_BITS_2 / FRAC_BITS), + static_cast(FLIT(26843545.0) / FRAC_BITS_2 / FRAC_BITS_2), }; #elif FBITS == 24 @@ -31,10 +31,10 @@ static const FTYPE tenth[] = { static const FTYPE tenth[] = { // 24-bit: 0.100000 - (FTYPE)(FLIT(409.0) / FRAC_BITS), - (FTYPE)(FLIT(2457.0) / FRAC_BITS_2), - (FTYPE)(FLIT(2457.0) / FRAC_BITS_2 / FRAC_BITS), - (FTYPE)(FLIT(2457.0) / FRAC_BITS_2 / FRAC_BITS_2), + static_cast(FLIT(409.0) / FRAC_BITS), + static_cast(FLIT(2457.0) / FRAC_BITS_2), + static_cast(FLIT(2457.0) / FRAC_BITS_2 / FRAC_BITS), + static_cast(FLIT(2457.0) / FRAC_BITS_2 / FRAC_BITS_2), }; #else // FBITS @@ -81,7 +81,7 @@ FTYPE FNAME(Dtento)(FTYPE* xpx, long n, int* perr) { // compute *px * 10**n x = FNAME(Xp_getw)(xpx, ACSIZE); if (x == FLIT(0.0) || x == FCONST(Inf) || x == -FCONST(Inf)) { // report error and set errno errno = ERANGE; - if (perr != 0) { + if (perr != nullptr) { *perr |= 1; } } diff --git a/stl/src/xxxprec.hpp b/stl/src/xxxprec.hpp index c52edb96417..a5990e030d7 100644 --- a/stl/src/xxxprec.hpp +++ b/stl/src/xxxprec.hpp @@ -10,14 +10,6 @@ _EXTERN_C #endif // defined(MRTDLL) -#ifndef ldexpf -#define ldexpf(x, y) ldexp((double) (x), (y)) -#endif // ldexp - -#ifndef sqrtf -#define sqrtf(x) sqrt((double) (x)) -#endif // sqrtf - #define BIG_EXP (2 * FMAXEXP) // very large, as exponents go #define BITS_WORD (FBITS / 2) // all words same for now #define NBUF 4 // size of delay line for mulh @@ -37,7 +29,7 @@ static void printit(const char* s, FTYPE* p, int n) { // print xp array int i; printf(s); for (i = 0; i < n && (p[i] != FLIT(0.0) || i == 0); ++i) { - printf(" %La", (long double) p[i]); + printf(" %La", static_cast(p[i])); } printf("\n"); } @@ -141,7 +133,7 @@ FTYPE* FNAME(Xp_addh)(FTYPE* p, int n, FTYPE x0) { // add a half-precision value break; } - if ((diff = (long) yexp - xexp) <= -mybits + if ((diff = static_cast(yexp) - xexp) <= -mybits && x0 != FLIT(0.0)) { // insert nonzero x0 and loop to renormalize int j = k; @@ -175,7 +167,7 @@ FTYPE* FNAME(Xp_addh)(FTYPE* p, int n, FTYPE x0) { // add a half-precision value x0 = p[k]; FNAME(Dunscale)(&xexp, &x0); if (prevexp - mybits < xexp) { // propagate bits up - FNAME(Dint)(&x0, (short) (xexp - (prevexp - mybits))); + FNAME(Dint)(&x0, static_cast(xexp - (prevexp - mybits))); FNAME(Dscale)(&x0, xexp); if ((p[k] -= x0) == FLIT(0.0)) { // all bits carry, copy up words COPY_UP(k, n) @@ -274,12 +266,11 @@ FTYPE* FNAME(Xp_mulh)(FTYPE* p, int n, FTYPE x0) { // multiply by a half-precisi FTYPE* FNAME(Xp_setn)(FTYPE* p, int n, long x) { // load a long integer #if 27 <= FBITS - FNAME(Xp_setw)(p, n, (FTYPE) x); - + FNAME(Xp_setw)(p, n, static_cast(x)); #else // 27 <= FBITS - FNAME(Xp_setw)(p, n, (FTYPE)(x / 10000)); - FNAME(Xp_mulh)(p, n, (FTYPE) 10000); - FNAME(Xp_addh)(p, n, (FTYPE)(x % 10000)); + FNAME(Xp_setw)(p, n, static_cast(x / 10000)); + FNAME(Xp_mulh)(p, n, static_cast(10000)); + FNAME(Xp_addh)(p, n, static_cast(x % 10000)); #endif // 27 <= FBITS return p; diff --git a/tests/tr1/tests/regex3/test.cpp b/tests/tr1/tests/regex3/test.cpp index e37aa5bdcad..634c944d313 100644 --- a/tests/tr1/tests/regex3/test.cpp +++ b/tests/tr1/tests/regex3/test.cpp @@ -316,8 +316,8 @@ static void test_uncoveredgrammar() { // test "." MyRgx rx1; MyRgx rx2; - STDString str1(T("Moon is white\n Sun is bright")); - STDString str2(T("Windows seven")); + STDString str1(T("Cats are cute\n Dogs are friendly")); + STDString str2(T("Prime number")); STDString str3(T("aaaqxzbbb")); STDString str4(T("aaa\nxzbbb")); static const STD regex_constants::syntax_option_type flag[6] = {