我已经有一个可以在 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' 作为回报 知道什么必须是尾随类型