1

我已经有一个可以在 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 .. 但我收到错误之类的错误:无法将 '{anonymous}::LookupPredicate(const string&)::' 转换为 'bool' 作为回报 知道什么必须是尾随类型

4

0 回答 0