From b7aff8414a031908be2c3bb11217e7648e83429b Mon Sep 17 00:00:00 2001 From: Edward Nolan Date: Fri, 24 Oct 2025 21:23:52 -0400 Subject: [PATCH] Restore Windows support --- .github/workflows/ci_tests.yml | 17 ++++++++++++++++- README.md | 1 + examples/readme_examples.cpp | 2 ++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci_tests.yml b/.github/workflows/ci_tests.yml index daacda76..ad3cecc5 100644 --- a/.github/workflows/ci_tests.yml +++ b/.github/workflows/ci_tests.yml @@ -22,7 +22,9 @@ jobs: matrix_config: > [ {"preset": "gcc-debug", "image": "ghcr.io/bemanproject/infra-containers-gcc:latest"}, - {"preset": "gcc-release", "image": "ghcr.io/bemanproject/infra-containers-gcc:latest"} + {"preset": "gcc-release", "image": "ghcr.io/bemanproject/infra-containers-gcc:latest"}, + {"preset": "msvc-debug", "runner": "windows-latest"}, + {"preset": "msvc-release", "runner": "windows-latest"} ] build-and-test: @@ -84,6 +86,19 @@ jobs: } ] } + ], + "msvc": [ + { "versions": ["latest"], + "tests": [ + { "cxxversions": ["c++23"], + "tests": [ + { "stdlibs": ["stl"], + "tests": ["Debug.Default", "Release.Default", "Release.MaxSan"] + } + ] + } + ] + } ] } diff --git a/README.md b/README.md index f62c2618..dd640a0b 100644 --- a/README.md +++ b/README.md @@ -133,6 +133,7 @@ This project officially supports: - Clang 19/libc++ - Clang 20/libc++ - Clang 21/libc++ +- MSVC 19.41 Note: Building with Clang and libstdc++ is not currently supported due to various bugs. diff --git a/examples/readme_examples.cpp b/examples/readme_examples.cpp index 161f0009..0d85a56d 100644 --- a/examples/readme_examples.cpp +++ b/examples/readme_examples.cpp @@ -182,11 +182,13 @@ static_assert(take_five_c("Dave") == "Dave"sv); // passes static_assert(take_five_c("Brubeck") == "Brube"sv); // passes #endif +#ifndef _MSC_VER static_assert((u8"\xf0\x9f\x99\x82" | to_utf32 | std::ranges::to()) == U"\x0001F642"); static_assert((u8"\xf0\x9f\x99\x82" | std::views::take(3) | to_utf32 | std::ranges::to()) == U"�"); static_assert( *(u8"\xf0\x9f\x99\x82" | std::views::take(3) | to_utf32_or_error).begin() == std::unexpected{utf_transcoding_error::truncated_utf8_sequence}); +#endif bool readme_examples() { using namespace std::string_view_literals;