Skip to content

Commit

Permalink
Fix: Call to erase_if is ambiguous with C++20
Browse files Browse the repository at this point in the history
  • Loading branch information
fknorr committed Feb 17, 2024
1 parent 409f2ff commit 7319f88
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions util/device_set.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,17 @@ void device_set::intersect(const device_set& other) {
const auto& device = *it;
return other.m_devices.find(device) == other.m_devices.end();
};
erase_if(m_devices, condition);
// must explicitly specify namespace `util` to avoid ambiguity with
// std::erase_if when compiling for C++20
util::erase_if(m_devices, condition);
}

void device_set::removeDevsWith(sycl::aspect aspect) {
auto condition = [&](const StorageType::iterator& it) {
const auto& device = *it;
return device.has(aspect);
};
erase_if(m_devices, condition);
util::erase_if(m_devices, condition);
}

void device_set::removeDevsWith(std::initializer_list<sycl::aspect> aspects) {
Expand All @@ -70,15 +72,15 @@ void device_set::removeDevsWithout(sycl::aspect aspect) {
const auto& device = *it;
return !device.has(aspect);
};
erase_if(m_devices, condition);
util::erase_if(m_devices, condition);
}

void device_set::removeDevsWithout(const kernel_restrictions& restriction) {
auto condition = [&](const StorageType::iterator& it) {
const auto& device = *it;
return !restriction.is_compatible(device);
};
erase_if(m_devices, condition);
util::erase_if(m_devices, condition);
}

device_set device_set::filtered(const device_set& other, sycl::aspect aspect) {
Expand Down

0 comments on commit 7319f88

Please sign in to comment.