Releases: YexuanXiao/cppwinrtplus
Modular XAML
Now all the files you write that use C++/WinRT can be modularized, including those for XAML. See the tutorial for how.
What's Changed
- Clean WINRT_EXPORT in component.cpp/fast_forward.h by @YexuanXiao in #55
- Modular XAML by @YexuanXiao in #56
Full Changelog: v2.1.260418.1...v2.1.260418.2
Add option to support legacy COM
C++/WinRT Plus now provides the option Enable Legacy COM to automatically include unknwn.h and inspectable.h, providing legacy COM support when using modules.
Some module compatibility improvements and other minor enhancements
MSVC module BUG workaround
What's Changed
- MSVC module BUG workaround by @YexuanXiao
Full Changelog: v2.1.260405.1...v2.1.260406.1
Support using lambdas with deducing this as delegates
What's Changed
- Add [[nodiscard]] to overloads of static events that return winrt::event_token by @YexuanXiao in #46
- Deducing this for delegates by @YexuanXiao in #43
Full Changelog: v2.1.260322.1...v2.1.260405.1
Using deducing this can avoid dangling issues caused by the lambda capture being destroyed along with the target object. See my blog post.
Alleviated the compatibility issues when using modules and headers simultaneously
What's Changed
- Simplify module implementation to resolve compatibility issues with mixed use of headers by @YexuanXiao in #40
- Remove the useless winrt.ixx by @YexuanXiao in #42
Full Changelog: v2.1.260314.1...v2.1.260322.1
Go further on the road to using C++20
What's Changed
- Use hidden friends, defaulted comparison and three-way comparison by @YexuanXiao in #34
- Simplify get_activation_factory by @YexuanXiao in #33
- Use concepts instead of enable_if and void_t by @YexuanXiao in #35
Full Changelog: v2.1.260306.1...v2.1.260314.1
Reduces header file size by 1/4, pch file size by 1/10 and compilation time by 1/10
C++/WinRT Plus proudly announces that the generated code has been improved, reducing header file size by 1/4, pch file size by 1/10 and compilation time by 1/10. This improvement will also be contributed upstream to bring efficiency gains to all C++/WinRT users.
C++/WinRT can now be compiled as C++ modules.
What's Changed
C++/WinRT can now be compiled as C++ modules.
- Remove <experimental/coroutine> and add missing std qualifications by @YexuanXiao in #2
- Clean up experimental/coroutine by @YexuanXiao in #3
- Investigate the suppression of warnings by @YexuanXiao in #4
- Modularization and fixes for legacy header files and std:: prefixes by @YexuanXiao in #8
- Remove the preprocessor directives used to detect C++20 by @YexuanXiao in #9
- Implement -modules and -config options by @YexuanXiao in #10
- Added module tests for MSBuild, temporarily disabled CMake tests for … by @YexuanXiao in #11
- Rename Microsoft.Windows.CppWinRT with YexuanXiao.CppWinRTPlus by @YexuanXiao in #12
Full Changelog: v2.1.260222.0...v2.1.260224.1
2026-02-22
Upgrades Visual Studio 2022 to 2026, MSVC v143 to v145, and Clang 17.0.5 to 21.1.8.
The minimum C++ standard is now C++20 (as MSVC v145 drops C++17 coroutine support). C++/CX support is removed due to incompatibility with C++20.
The solution file is converted to .slnx. A Clang warning has been suppressed to ensure CI passes.