system/Error: add MakeErrno(), MakeLastError()
This commit is contained in:
parent
93f4590453
commit
fe60c52c70
@ -49,6 +49,19 @@ FormatSystemError(std::error_code code, const char *fmt, Args&&... args)
|
|||||||
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
|
||||||
|
static inline std::system_error
|
||||||
|
MakeLastError(DWORD code, const char *msg)
|
||||||
|
{
|
||||||
|
return std::system_error(std::error_code(code, std::system_category()),
|
||||||
|
msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline std::system_error
|
||||||
|
MakeLastError(const char *msg)
|
||||||
|
{
|
||||||
|
return MakeLastError(GetLastError(), msg);
|
||||||
|
}
|
||||||
|
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
static inline std::system_error
|
static inline std::system_error
|
||||||
FormatLastError(DWORD code, const char *fmt, Args&&... args)
|
FormatLastError(DWORD code, const char *fmt, Args&&... args)
|
||||||
@ -64,8 +77,7 @@ FormatLastError(DWORD code, const char *fmt, Args&&... args)
|
|||||||
FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM |
|
FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM |
|
||||||
FORMAT_MESSAGE_IGNORE_INSERTS,
|
FORMAT_MESSAGE_IGNORE_INSERTS,
|
||||||
nullptr, code, 0, p, end - p, nullptr);
|
nullptr, code, 0, p, end - p, nullptr);
|
||||||
return std::system_error(std::error_code(code, std::system_category()),
|
return MakeLastError(code, buffer);
|
||||||
buffer);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
@ -81,6 +93,19 @@ FormatLastError(const char *fmt, Args&&... args)
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
static inline std::system_error
|
||||||
|
MakeErrno(int code, const char *msg)
|
||||||
|
{
|
||||||
|
return std::system_error(std::error_code(code, std::system_category()),
|
||||||
|
msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline std::system_error
|
||||||
|
MakeErrno(const char *msg)
|
||||||
|
{
|
||||||
|
return MakeErrno(errno, msg);
|
||||||
|
}
|
||||||
|
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
static inline std::system_error
|
static inline std::system_error
|
||||||
FormatErrno(int code, const char *fmt, Args&&... args)
|
FormatErrno(int code, const char *fmt, Args&&... args)
|
||||||
@ -94,8 +119,7 @@ FormatErrno(int code, const char *fmt, Args&&... args)
|
|||||||
*p++ = ' ';
|
*p++ = ' ';
|
||||||
|
|
||||||
CopyString(p, strerror(code), end - p);
|
CopyString(p, strerror(code), end - p);
|
||||||
return std::system_error(std::error_code(code, std::system_category()),
|
return MakeErrno(code, buffer);
|
||||||
buffer);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
|
Loading…
Reference in New Issue
Block a user