diff --git a/strings/base_error.h b/strings/base_error.h index 69e23adbd..b375d3913 100644 --- a/strings/base_error.h +++ b/strings/base_error.h @@ -619,12 +619,14 @@ WINRT_EXPORT namespace winrt } template - void check_bool(T result WINRT_IMPL_SOURCE_LOCATION_ARGS) + T check_bool(T result WINRT_IMPL_SOURCE_LOCATION_ARGS) { if (!result) { winrt::throw_last_error(WINRT_IMPL_SOURCE_LOCATION_FORWARD_SINGLE_PARAM); } + + return result; } template diff --git a/test/old_tests/UnitTests/Errors.cpp b/test/old_tests/UnitTests/Errors.cpp index 000e93851..33e9b422f 100644 --- a/test/old_tests/UnitTests/Errors.cpp +++ b/test/old_tests/UnitTests/Errors.cpp @@ -200,6 +200,8 @@ TEST_CASE("Errors") SetLastError(ERROR_CANCELLED); REQUIRE_THROWS_AS(check_bool(static_cast(false)), hresult_canceled); + REQUIRE(check_bool(true) == true); + // Support for Win32 errors. check_win32(ERROR_SUCCESS); REQUIRE_THROWS_AS(check_win32(ERROR_CANCELLED), hresult_canceled);