Минимальный пример выдаёт “no such file or directory”:
#include <system_error>
#include <Windows.h>
void RaiseSystemError()
{
std::error_code code(ERROR_PATH_NOT_FOUND, std::system_category());
throw std::system_error(code);
}
int main()
{
try
{
RaiseSystemError();
}
catch (const std::exception &ex)
{
std::cerr << ex.what() << std::endl;
}
}
Сниппет возврата кода ошибки
std::error_code GetLastErrorCode()
{
return std::error_code(::GetLastError(), std::system_category());
}
std::error_code CModuleVersionInfo::InitData()const
{
if (!m_data)
{
// .. вызов Win32 API
}
return std::error_code(); // всё OK
}
Сниппет проверки кода ошибки
if (std::error_code err = InitData())
{
throw std::system_error(err);
}