From e4ef61ca930a17d8a98039206839dcc6cb92acb5 Mon Sep 17 00:00:00 2001 From: Michele Caini Date: Mon, 13 May 2024 11:43:35 +0200 Subject: [PATCH] build: stop supporting msvc toolset v141 --- .github/workflows/build.yml | 4 +--- src/entt/core/type_traits.hpp | 9 +++------ src/entt/entity/group.hpp | 3 +-- src/entt/entity/view.hpp | 3 +-- 4 files changed, 6 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5bed120ac..ddf664440 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -84,10 +84,8 @@ jobs: strategy: matrix: - toolset: [default, v141, v142, clang-cl] + toolset: [default, v142, clang-cl] include: - - toolset: v141 - toolset_option: -T"v141" - toolset: v142 toolset_option: -T"v142" - toolset: clang-cl diff --git a/src/entt/core/type_traits.hpp b/src/entt/core/type_traits.hpp index f32d50662..fbf0e7195 100644 --- a/src/entt/core/type_traits.hpp +++ b/src/entt/core/type_traits.hpp @@ -574,7 +574,7 @@ inline constexpr bool value_list_contains_v = value_list_contains:: /*! @brief Primary template isn't defined on purpose. */ template -class value_list_diff; +struct value_list_diff; /** * @brief Computes the difference between two value lists. @@ -582,12 +582,9 @@ class value_list_diff; * @tparam Other Values provided by the second value list. */ template -class value_list_diff, value_list> { - using v141_toolset_workaround = value_list; - -public: +struct value_list_diff, value_list> { /*! @brief A value list that is the difference between the two value lists. */ - using type = value_list_cat_t, value_list<>, value_list>...>; + using type = value_list_cat_t, Value>, value_list<>, value_list>...>; }; /** diff --git a/src/entt/entity/group.hpp b/src/entt/entity/group.hpp index e9e3681b1..015be6aee 100644 --- a/src/entt/entity/group.hpp +++ b/src/entt/entity/group.hpp @@ -696,8 +696,7 @@ private: */ template class basic_group, get_t, exclude_t> { - // nasty workaround for an issue with the toolset v141 that doesn't accept a fold expression here - static_assert(!std::disjunction_v::in_place_delete>...>, "Groups do not support in-place delete"); + static_assert((!component_traits::in_place_delete && ...), "Groups do not support in-place delete"); using base_type = std::common_type_t; using underlying_type = typename base_type::entity_type; diff --git a/src/entt/entity/view.hpp b/src/entt/entity/view.hpp index df962c891..5fa108d45 100644 --- a/src/entt/entity/view.hpp +++ b/src/entt/entity/view.hpp @@ -389,8 +389,7 @@ class basic_view, exclude_t>: public basic_common_view template static constexpr std::size_t index_of = type_list_index_v, type_list>; - // yet another workaround for an issue with the toolset v141 that doesn't accept a plain fold expression here - static constexpr bool tombstone_check_required = std::bool_constant<((sizeof...(Get) == 1u) && ... && (Get::storage_policy == deletion_policy::in_place))>::value; + static constexpr bool tombstone_check_required = ((sizeof...(Get) == 1u) && ... && (Get::storage_policy == deletion_policy::in_place)); template auto get(const typename base_type::entity_type entt, std::index_sequence) const noexcept {