Even more algorithm usage in ProjectExplorer

Add Utils::transform and anyOf that take a member function pointer.
Remove bestElementOr it's unused.

Use declval<T> in transform's return type, because msvc does evaluate
T() and for types that don't have simple constructor this fails.
Add std::remove_reference since decltype returns a reference for
lvalues.

Change-Id: I22248b226748eeb27af0d300182d574438d7f756
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
Daniel Teske
2014-07-07 19:02:26 +02:00
parent 71b56d2b9c
commit eccf1dc1e3
29 changed files with 219 additions and 247 deletions

View File

@@ -227,14 +227,14 @@ void Project::setActiveTarget(Target *target)
Target *Project::target(Core::Id id) const
{
return Utils::findOr(d->m_targets, 0, [&id](Target *target) {
return Utils::findOrDefault(d->m_targets, [&id](Target *target) {
return target->id() == id;
});
}
Target *Project::target(Kit *k) const
{
return Utils::findOr(d->m_targets, 0, [&k](Target *target) {
return Utils::findOrDefault(d->m_targets, [&k](Target *target) {
return target->kit() == k;
});
}
@@ -499,7 +499,7 @@ void Project::setup(QList<const BuildInfo *> infoList)
continue;
Target *t = target(k);
if (!t) {
t = Utils::findOr(toRegister, 0, [&k](Target *i){
t = Utils::findOrDefault(toRegister, [&k](Target *i){
return i->kit() == k;
});
}