Skip to content

Plans for C++/WinRT 3.0 and 4.0 #1593

Description

@YexuanXiao

Currently, there are no clear plans for what changes C++/WinRT will undergo in the future. I believe C++/WinRT could be improved in the following areas:

  1. Introduce a wcstring_view type to address critical issue Bug: Undefined behavior in param::hstring(std::wstring_view #1569, which is a breaking change.
  2. Change array_view to std::span, which is a breaking change and requires C++20.
  3. Use concepts instead of SFINAE to improve compilation speed and error messages, which is requires C++20.
  4. Use std::atomic_ref instead of raw synchronization intrinsics to simplify code, which is requires C++20.
  5. Use three-way comparison to simplify code, which is requires C++20
  6. Merge cppwinrt should not call LoadLibrary anywhere unless new WINRT_REG_FREE define is defined, re-activating regfree behavior #1446 to improve correctness and safety.
  7. Change hstring's value_type to char16_t for consistency with box_value (which does not accept wchar_t), which is a breaking change.
  8. Deprecate uninit_apartment and provide a RAII class to uninitialize COM, which is a breaking change.

Which of these will be accepted and which will not? Which belong to C++/WinRT 3.0 and which belong to C++/WinRT 4.0?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions