diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3c02dcc3d..39f4dc0dc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -74,8 +74,6 @@ jobs: os: - name: ubuntu version: 24.04 - - name: windows - version: 2022 - name: windows version: 2025-vs2026 build_type: @@ -99,34 +97,16 @@ jobs: version: 21 executable: clang++-21 cxxflags: -stdlib=libc++ -fcolor-diagnostics - - name: MSVC - toolset: msvc - version: 2022 - toolset_version: 14.44 - vs-path: C:\Program Files\Microsoft Visual Studio\2022\Enterprise - cmake_config_additional_args: -G "Visual Studio 17 2022" - builder_additional_args: -- "-consoleLoggerParameters:ForceConsoleColor" - executable: cl - name: MSVC toolset: msvc version: 2026 - toolset_version: 14.50 + toolset_version: 14.51 vs-path: C:\Program Files\Microsoft Visual Studio\18\Enterprise cmake_config_additional_args: -G "Visual Studio 18 2026" builder_additional_args: -- "-consoleLoggerParameters:ForceConsoleColor" executable: cl exclude: - - os: - name: windows - version: 2022 - compiler: - version: 2026 - - os: - name: windows - version: 2025-vs2026 - compiler: - version: 2022 - os: name: windows compiler: diff --git a/modules/iris b/modules/iris index 8dfa73a34..920366e6e 160000 --- a/modules/iris +++ b/modules/iris @@ -1 +1 @@ -Subproject commit 8dfa73a34bbb707b7f7ef4ddef77f810a6d15a23 +Subproject commit 920366e6e58d417c898e61d4a0104c37c1db3ca4 diff --git a/test/x4/smart_ptr.cpp b/test/x4/smart_ptr.cpp index dff2ecbcd..069b9ade7 100644 --- a/test/x4/smart_ptr.cpp +++ b/test/x4/smart_ptr.cpp @@ -12,6 +12,27 @@ #include #include +#include + +template +struct throwing_parser : x4::parser> +{ + using attribute_type = T; + + template Se, class Context, x4::X4Attribute Attr> + [[nodiscard]] static constexpr bool + parse(It&, Se const&, Context const&, Attr& attr_) + { + // Dummy condition for suppressing potential warning + if (std::addressof(attr_)) { + throw std::runtime_error("throwing_parser"); + } + return false; + } +}; + +template +[[maybe_unused]] inline constexpr throwing_parser always_throw{}; template struct custom_deleter @@ -43,7 +64,7 @@ TEST_CASE("unique_ptr (std::default_delete)") { std::unique_ptr result; REQUIRE_THROWS_AS( - parse("1", unique_ptr(eps[([] { throw std::runtime_error{"failed"}; })]), result), + parse("1", unique_ptr(always_throw), result), std::runtime_error ); REQUIRE(!result); @@ -65,7 +86,7 @@ TEST_CASE("unique_ptr (std::default_delete)") { std::unique_ptr result = std::make_unique(42); REQUIRE_THROWS_AS( - parse("1", unique_ptr(eps[([] { throw std::runtime_error{"failed"}; })]), result), + parse("1", unique_ptr(always_throw), result), std::runtime_error ); REQUIRE(!!result); @@ -94,7 +115,7 @@ TEST_CASE("unique_ptr (custom deleter)") { std::unique_ptr> result; REQUIRE_THROWS_AS( - parse("1", unique_ptr>(eps[([] { throw std::runtime_error{"failed"}; })]), result), + parse("1", unique_ptr>(always_throw), result), std::runtime_error ); REQUIRE(!result); @@ -116,7 +137,7 @@ TEST_CASE("unique_ptr (custom deleter)") { std::unique_ptr> result(new int(42), custom_deleter{}); REQUIRE_THROWS_AS( - parse("1", unique_ptr>(eps[([] { throw std::runtime_error{"failed"}; })]), result), + parse("1", unique_ptr>(always_throw), result), std::runtime_error ); REQUIRE(!!result); @@ -145,7 +166,7 @@ TEST_CASE("shared_ptr (std::default_delete)") { std::shared_ptr result; REQUIRE_THROWS_AS( - parse("1", shared_ptr(eps[([] { throw std::runtime_error{"failed"}; })]), result), + parse("1", shared_ptr(always_throw), result), std::runtime_error ); REQUIRE(!result); @@ -167,7 +188,7 @@ TEST_CASE("shared_ptr (std::default_delete)") { std::shared_ptr result = std::make_shared(42); REQUIRE_THROWS_AS( - parse("1", shared_ptr(eps[([] { throw std::runtime_error{"failed"}; })]), result), + parse("1", shared_ptr(always_throw), result), std::runtime_error ); REQUIRE(!!result); @@ -196,7 +217,7 @@ TEST_CASE("shared_ptr (custom deleter)") { std::shared_ptr result; REQUIRE_THROWS_AS( - parse("1", shared_ptr>(eps[([] { throw std::runtime_error{"failed"}; })]), result), + parse("1", shared_ptr>(always_throw), result), std::runtime_error ); REQUIRE(!result); @@ -218,7 +239,7 @@ TEST_CASE("shared_ptr (custom deleter)") { std::shared_ptr result(new int(42), custom_deleter{}); REQUIRE_THROWS_AS( - parse("1", shared_ptr>(eps[([] { throw std::runtime_error{"failed"}; })]), result), + parse("1", shared_ptr>(always_throw), result), std::runtime_error ); REQUIRE(!!result);