workaround for an issue of MSVC
This commit is contained in:
@@ -1263,7 +1263,7 @@ public:
|
||||
constexpr auto size = sizeof...(Owned) + sizeof...(Get) + sizeof...(Exclude);
|
||||
handler_type *handler = nullptr;
|
||||
|
||||
if(auto it = std::find_if(groups.cbegin(), groups.cend(), [](const auto &gdata) {
|
||||
if(auto it = std::find_if(groups.cbegin(), groups.cend(), [size](const auto &gdata) {
|
||||
return gdata.size == size
|
||||
&& (gdata.owned(type_info<std::decay_t<Owned>>::id()) && ...)
|
||||
&& (gdata.get(type_info<std::decay_t<Get>>::id()) && ...)
|
||||
@@ -1290,13 +1290,13 @@ public:
|
||||
if constexpr(sizeof...(Owned) == 0) {
|
||||
groups.push_back(std::move(gdata));
|
||||
} else {
|
||||
ENTT_ASSERT(std::all_of(groups.cbegin(), groups.cend(), [](const auto &gdata) {
|
||||
ENTT_ASSERT(std::all_of(groups.cbegin(), groups.cend(), [size](const auto &gdata) {
|
||||
const auto overlapping = (0u + ... + gdata.owned(type_info<std::decay_t<Owned>>::id()));
|
||||
const auto sz = overlapping + (0u + ... + gdata.get(type_info<std::decay_t<Get>>::id())) + (0u + ... + gdata.exclude(type_info<Exclude>::id()));
|
||||
return !overlapping || ((sz == size) || (sz == gdata.size));
|
||||
}));
|
||||
|
||||
const auto next = std::find_if_not(groups.cbegin(), groups.cend(), [&size](const auto &gdata) {
|
||||
const auto next = std::find_if_not(groups.cbegin(), groups.cend(), [size](const auto &gdata) {
|
||||
return !(0u + ... + gdata.owned(type_info<std::decay_t<Owned>>::id())) || (size > (gdata.size));
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user