24 return const_cast<char*
>(
"Visual C++ CRT: Not enough memory to complete call to strerror.");
30 return const_cast<wchar_t*
>(
L"Visual C++ CRT: Not enough memory to complete call to strerror.");
39 return ptd->_strerror_buffer;
44 return ptd->_wcserror_buffer;
51static
errno_t copy_string_into_buffer(
62static
errno_t copy_string_into_buffer(
77template <
typename Character>
87 buffer = _calloc_crt_t(Character, strerror_buffer_count).detach();
98 return common_strerror<char>(error_number);
103 return common_strerror<wchar_t>(error_number);
111template <
typename Character>
115 int const error_number
133 int const error_number
142 int const error_number
_Ret_z_ __inline char const * _get_sys_err_msg(size_t const m)
#define _ERRCHECK_EINVAL_ERANGE(e)
__acrt_ptd *__cdecl __acrt_getptd_noexit(void)
_In_ size_t const _In_ int _In_ bool const _In_ unsigned const _In_ __acrt_rounding_mode const _Inout_ __crt_cached_ptd_host & ptd
Character const *const size_t const max_count
#define _VALIDATE_RETURN_ERRCODE(expr, errorcode)
errno_t mbstowcs_s(size_t *cchConverted, wchar_t *widechar, size_t charoutct, const char *multibyte, size_t count)
#define _Out_writes_z_(s)
#define _In_reads_or_z_(s)
size_t const buffer_count
errno_t __cdecl _wcserror_s(wchar_t *const buffer, size_t const buffer_count, int const error_number)
char *__cdecl strerror(int const error_number)
static _Ret_z_ Character *__cdecl common_strerror(int const error_number)
size_t const size_t const max_count throw()
static _Ret_z_ char * get_failure_string(char)
wchar_t *__cdecl _wcserror(int const error_number)
static char *& get_ptd_buffer(__acrt_ptd *const ptd, char)
errno_t __cdecl strerror_s(char *const buffer, size_t const buffer_count, int const error_number)
static errno_t __cdecl common_strerror_s(_Out_writes_z_(buffer_count) Character *const buffer, size_t const buffer_count, int const error_number)