From 1981d8d0aa8e02727eee0b12a5d1558e47514c0e Mon Sep 17 00:00:00 2001 From: Theodore Tsirpanis Date: Fri, 6 Feb 2026 04:16:09 +0200 Subject: [PATCH 1/2] Fix incompatibility with C++14. `std::scoped_lock` is available in C++17. Using it without a feature guard causes compile errors on earlier C++ versions. --- include/wil/resource.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/wil/resource.h b/include/wil/resource.h index 8e07dbb7..e48d66db 100644 --- a/include/wil/resource.h +++ b/include/wil/resource.h @@ -4987,7 +4987,7 @@ struct hlocal_secure_deleter { if (ptr) { -#pragma warning(suppress : 26006 26007) // LocalSize() ensures proper buffer length +#pragma warning(suppress : 26006 26007) // LocalSize() ensures proper buffer length ::SecureZeroMemory(ptr, ::LocalSize(ptr)); // this is safe since LocalSize() returns 0 on failure ::LocalFree(ptr); } @@ -8322,10 +8322,12 @@ namespace details { }; +#ifdef __cpp_lib_scoped_lock template struct lock_proof_traits> : exclusive_lock_proof { }; +#endif } // namespace details /// @endcond From 3d43fe87619924d454da3866851f919133158b6e Mon Sep 17 00:00:00 2001 From: Theodore Tsirpanis Date: Sat, 7 Feb 2026 23:10:49 +0200 Subject: [PATCH 2/2] Update include/wil/resource.h Co-authored-by: Duncan Horn <40036384+dunhor@users.noreply.github.com> --- include/wil/resource.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/wil/resource.h b/include/wil/resource.h index e48d66db..0cb2ad83 100644 --- a/include/wil/resource.h +++ b/include/wil/resource.h @@ -8322,7 +8322,7 @@ namespace details { }; -#ifdef __cpp_lib_scoped_lock +#if __cpp_lib_scoped_lock >= 201703L template struct lock_proof_traits> : exclusive_lock_proof {