У меня уже есть код, который отлично работает с C ++ 14, но теперь мне нужно установить настройки моего компилятора на C ++ 11.
auto LookupPredicate(const std::string& aUnitId)
{
return [aUnitId](Coach* pCoach) {return aUnitId == pCoach->getUnitId();};
}
template<typename C, typename UnaryPredicate>
auto findIn_impl(C& container, UnaryPredicate p) {
return std::find_if(std::begin(container), std::end(container), p);
}
findCoach(const std::string& aUnitId)
{
auto it = findIn_impl(_Coaches, LookupPredicate(aUnitId));
if( it != std::end(_Coaches))
cout<<"Selected Unit must exist. Incorrect value of aUnitId = " << aUnitId);
return **it;
}
Итак, я внес следующие изменения
auto LookupPredicate(const std::string& aUnitId) -> bool
{
return [aUnitId](Coach* pCoach) {return aUnitId == pCoach->getUnitId();};
}
Добавлен завершающий тип возврата bool. Но я получаю ошибки, такие как error: невозможно преобразовать '{anonymous} :: LookupPredicate (const string &) ::' в 'bool' взамен. Любая идея, какой должен быть конечный тип для этого