Skip to content

Releases: YexuanXiao/cppwinrtplus

Modular XAML

18 Apr 14:24
91b3b2e

Choose a tag to compare

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

Full Changelog: v2.1.260418.1...v2.1.260418.2

Add option to support legacy COM

18 Apr 07:17
9cd1c04

Choose a tag to compare

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

15 Apr 13:34

Choose a tag to compare

MSVC module BUG workaround

05 Apr 17:18

Choose a tag to compare

What's Changed

Full Changelog: v2.1.260405.1...v2.1.260406.1

Support using lambdas with deducing this as delegates

05 Apr 13:17
30affd6

Choose a tag to compare

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

21 Mar 18:14

Choose a tag to compare

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

14 Mar 09:15

Choose a tag to compare

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

06 Mar 14:49

Choose a tag to compare

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.

24 Feb 17:34

Choose a tag to compare

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

22 Feb 05:12

Choose a tag to compare

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.