summaryrefslogtreecommitdiff
path: root/src/song/Filter.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/song/Filter.cxx')
-rw-r--r--src/song/Filter.cxx32
1 files changed, 15 insertions, 17 deletions
diff --git a/src/song/Filter.cxx b/src/song/Filter.cxx
index aa9fc06e5..881b8b3ea 100644
--- a/src/song/Filter.cxx
+++ b/src/song/Filter.cxx
@@ -429,29 +429,27 @@ SongFilter::Match(const LightSong &song) const noexcept
bool
SongFilter::HasFoldCase() const noexcept
{
- for (const auto &i : and_filter.GetItems()) {
- if (auto t = dynamic_cast<const TagSongFilter *>(i.get())) {
- if (t->GetFoldCase())
- return true;
- } else if (auto u = dynamic_cast<const UriSongFilter *>(i.get())) {
- if (u->GetFoldCase())
- return true;
- }
- }
+ return std::any_of(
+ and_filter.GetItems().begin(), and_filter.GetItems().end(),
+ [](const auto &item) {
+ if (auto t = dynamic_cast<const TagSongFilter *>(item.get()))
+ return t->GetFoldCase();
+
+ if (auto u = dynamic_cast<const UriSongFilter *>(item.get()))
+ return u->GetFoldCase();
- return false;
+ return false;
+ });
}
bool
SongFilter::HasOtherThanBase() const noexcept
{
- for (const auto &i : and_filter.GetItems()) {
- const auto *f = dynamic_cast<const BaseSongFilter *>(i.get());
- if (f == nullptr)
- return true;
- }
-
- return false;
+ return std::any_of(and_filter.GetItems().begin(), and_filter.GetItems().end(),
+ [=](const auto &item) {
+ return !dynamic_cast<const BaseSongFilter *>(
+ item.get());
+ });
}
const char *