Closed shalala66 closed 9 months ago
changed the enum Kind : unsigned int { HResult, NtStatus };:
struct ResultStatus { enum Kind : unsigned int { HResult, NtStatus }; static ResultStatus FromResult(const HRESULT _hr) { return { _hr, wil::details::HrToNtStatus(_hr), Kind::HResult }; } static ResultStatus FromStatus(const NTSTATUS _status) { return { wil::details::NtStatusToHr(_status), _status, Kind::NtStatus }; } static ResultStatus FromFailureInfo(const FailureInfo& _failure) { return { _failure.hr, _failure.status, WI_IsFlagSet(_failure.flags, FailureFlags::NtStatus) ? Kind::NtStatus : Kind::HResult }; } HRESULT hr = S_OK; NTSTATUS status = STATUS_SUCCESS; Kind kind = Kind::NtStatus; };
to the enum class Kind : unsigned int { HResult, NtStatus };:
struct ResultStatus { enum class Kind : unsigned int { HResult, NtStatus }; static ResultStatus FromResult(const HRESULT _hr) { return { _hr, wil::details::HrToNtStatus(_hr), Kind::HResult }; } static ResultStatus FromStatus(const NTSTATUS _status) { return { wil::details::NtStatusToHr(_status), _status, Kind::NtStatus }; } static ResultStatus FromFailureInfo(const FailureInfo& _failure) { return { _failure.hr, _failure.status, WI_IsFlagSet(_failure.flags, FailureFlags::NtStatus) ? Kind::NtStatus : Kind::HResult }; } HRESULT hr = S_OK; NTSTATUS status = STATUS_SUCCESS; Kind kind = Kind::NtStatus; };
for Type Safety, Strong Typing, Scoped Names.
Please update the title/description
For those curious, like myself, the usage of this type is limited only to WIL's internals (right now), so this should not break much if any code
changed the enum Kind : unsigned int { HResult, NtStatus };:
to the enum class Kind : unsigned int { HResult, NtStatus };:
for Type Safety, Strong Typing, Scoped Names.