2013-10-07 37 views
0

我的代碼是:不能推導出模板參數的「T」

std::vector<double> Vec; 

template<typename T> 
void GetObj(VARIANT &vtProp) 
{ 
    CComSafeArray<T> SafeArray; 

    SafeArray.Attach(vtProp.parray); 
    ULONG Count = SafeArray.GetCount(); 
    Vec.resize(Count); 
    for(ULONG Index = 0; Index < Count; Index++) 
    { 
     Vec[Index] = SafeArray[Index]; 
    } 
} 

而編譯我得到以下錯誤:

error C2783: 'void __cdecl GetObj(struct tagVARIANT &)' : could not deduce template argument for 'T' 

請給我建議的正確答案

+4

你需要調用這個函數:'GetObj (arg);'。 – juanchopanza

回答

5

有函數模板的簽名中沒有任何內容允許編譯器推斷模板類型,所以您需要明確:

GetObj<TheActualType>(arg);