From 798ff3c90cd2a76d1ff90bb87550fb0219fe3885 Mon Sep 17 00:00:00 2001 From: Evan Hu Date: Sat, 5 Sep 2026 14:13:40 +0900 Subject: [PATCH] fix(build): compile the handwriting demo as C++20 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新加的 CI 在 windows-2025 上暴露出 msimeui-handwriting-demo 编译失败:MSVC 14.51 的 STL 对 直接 static_assert 报错(STL1011)。 根因是这个 demo 用 C++/WinRT(winrt/Windows.UI.Input.Inking.h)做墨迹识别,而项目全局是 C++17;C++/WinRT 在 C++17 下走 回退路径,新版 MSVC STL 已经不再允许。把这一个 target 提到 C++20 即可,库和其余三个 demo 不受影响。 --- ui/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ui/CMakeLists.txt b/ui/CMakeLists.txt index 4d833f86..d087be3f 100644 --- a/ui/CMakeLists.txt +++ b/ui/CMakeLists.txt @@ -122,6 +122,10 @@ add_executable(msimeui-handwriting-demo WIN32 target_link_libraries(msimeui-handwriting-demo PRIVATE msimeui windowsapp.lib) +# C++/WinRT needs C++20 coroutines. Under C++17 it falls back to +# , which recent MSVC STL versions reject outright. +target_compile_features(msimeui-handwriting-demo PRIVATE cxx_std_20) + if(MSVC) target_compile_options(msimeui PRIVATE /W4 /permissive-) target_compile_options(msimeui-demo PRIVATE /W4 /permissive-)