Неверный трейлинг-тип возврата - PullRequest
1 голос
/ 09 апреля 2020

У меня уже есть код, который отлично работает с 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' взамен. Любая идея, какой должен быть конечный тип для этого

...