Skip to content

Conversation

@dunhor
Copy link
Member

@dunhor dunhor commented Jan 17, 2026

This has been long overdue

#pragma warning(push)
// The updated behavior of running init-list ctors during placement new is proper & correct, disable the warning that requests developers verify they want it
#pragma warning(disable : 4351)
// remove this after fixing - volatile access of '<expression>' is subject to /volatile:<iso|ms> setting; consider using __iso_volatile_load/store intrinsic functions
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI @jonwis I noticed this when copying the changes

__pragma(warning(suppress : 4297)); \
LOG_CAUGHT_EXCEPTION(); \
return; \
__pragma(warning(push)) __pragma(warning(disable : 4297)) LOG_CAUGHT_EXCEPTION(); \
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should update .clang-format to treat __pragma(...) as a full statement

}

template <typename TSrc, std::enable_if_t<has_c_str<TSrc>::value && has_size<TSrc>::value>* = nullptr>
template <typename TSrc, std::enable_if_t<has_c_str<TSrc>::value && has_size<TSrc>::value && std::is_same_v<typename TSrc::value_type, TChar>>* = nullptr>
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI @jonwis I had to make these changes to resolve ambiguous function call errors.

Related to this, there are some outstanding compilation errors with wil::str_concat when passing std::filesystem::path/winrt::hstring because both can implicitly convert to wil::basic_zstring_view and std::basic_string_view. I'm going to hold off on addressing those errors for now and do this in two parts: this part which mostly only copies source files back and forth with simple fixes and a second part where I try and tackle the wil::str_concat issue, hopefully while also fixing the two phase name lookup problem

@dunhor dunhor changed the title Sync with OS Sync with OS (part 1 of 2) Jan 20, 2026
Comment on lines +336 to +338
// This suppression is a temporary workaround to allow libraries built with C++20 to link into binaries built with
// earlier standard versions such as C++17. This appears to be an issue even when this specialization goes unused
#ifndef WIL_SUPPRESS_STD_FORMAT_USE
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also FYI @jonwis - seems that a couple projects build libraries with C++20, but link in a binary built with a lower version. From at least one comment, this is due to dependencies (IIRC ATL was called out) blocking those binaries from using C++20. Hopefully this can be temporary

@dunhor dunhor requested review from dmachaj and jonwis January 23, 2026 22:19
@dunhor dunhor changed the title Sync with OS (part 1 of 2) Sync with OS Jan 23, 2026
@dunhor dunhor merged commit cbf677f into master Jan 23, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants