У меня есть код нижеВыведение функции типа возвращаемого от типа возвращаемого значения своего параметра
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 (Я использую зЬй :: mem_fn создать его позже F также может быть std :: function), в настоящее время мне нужно явно передать тип U компилятору.
Как я могу использовать мой старый компилятор Vs2010 для вывода типа U?
Вы не можете. Типы возврата не выводятся сами по себе. – NathanOliver
Я обманул конкретный стандартный тег. Я не уверен, что это легко разрешимо в C++ 03. – Bathsheba
Вы не можете в C++ 03, вы могли бы, вероятно, в C++ 14 с 'decltype (auto)' – 101010