Skip to content

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

@YexuanXiao

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions