我有以下代码。
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();
}
即使在我的函数指针的返回类型中存在U,它是模板参数F(我使用std :: mem_fn创建它,后来F也可能是std :: function),目前我需要显式地将U的类型传递给编译器。
我如何让我的旧Vs2010编译器推断出U的类型?