我有以下推導其參數的返回類型函數返回類型
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