refs #290 using a CRange of iterator adaptors in implementating the tertiary predicate-based methods of the derived containers,

but preserving the return-by-copy for API stability
This commit is contained in:
Mathew Sutcliffe
2014-07-04 23:32:38 +01:00
parent 98a6854f8c
commit a4b317b100
17 changed files with 71 additions and 102 deletions

View File

@@ -25,26 +25,25 @@ namespace BlackMisc
CSequence<CAircraftMapping>(other)
{ }
CAircraftMappingList CAircraftMappingList::findByIcaoCode(const CAircraftIcao &searchIcao, bool emptyMeansWildcard) const
CAircraftMappingList CAircraftMappingList::findByIcaoCodeWildcard(const CAircraftIcao &searchIcao) const
{
if (!emptyMeansWildcard) return this->findBy(&CAircraftMapping::getIcao, searchIcao);
CAircraftMappingList result;
for (auto it = this->begin() ; it != this->end(); ++it)
return this->findBy([ = ](const CAircraftMapping &mapping)
{
if (it->getIcao().matchesWildcardIcao(searchIcao)) result.push_back(*it);
}
return result;
return mapping.matchesWildcardIcao(searchIcao);
});
}
CAircraftMappingList CAircraftMappingList::findByIcaoCodeExact(const CAircraftIcao &searchIcao) const
{
return this->findBy(&CAircraftMapping::getIcao, searchIcao);
}
CAircraftMappingList CAircraftMappingList::findByModelString(const QString modelString, Qt::CaseSensitivity sensitivity) const
{
CAircraftMappingList result;
for (auto it = this->begin() ; it != this->end(); ++it)
return this->findBy([ = ](const CAircraftMapping &mapping)
{
if (it->matchesModelString(modelString, sensitivity)) result.push_back(*it);
}
return result;
return mapping.matchesModelString(modelString, sensitivity);
});
}
/*