我有以下推导其参数的返回类型函数返回类型
template<typename U, typename F >
U GetListAndSearchName(F listGetter, const std::string& stringName)
{
std::vector<UserType> newList;
for (size_t i = 0; i < myList.size(); i++)
{
const std::vector<U>& list = listGetter(myList[i]);
for (size_t i = 0; i < list.size(); i++)
{
if (list[i]->GetName() == stringName)
return list[i];
}
}
return U();
}
代码即使ü在这模板参数F我的函数指针的返回类型存在(我使用std ::的mem_fn创建它后来的F可能也是std :: function)目前我需要将U的类型明确地传递给编译器。
如何让我的旧版Vs2010编译器推导出U的类型?
你不能。返回类型不能由他们自己推导出来。 – NathanOliver
我已经在特定的标准标签。我不确定这在C++ 03中很容易解决。 – Bathsheba
你不能在C++ 03中,你可能在C++ 14中用'decltype(auto)' – 101010