2013-10-07 2 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

Eсть ничего в сигнатуре шаблона функции, которая позволяет компилятору выводить тип шаблона, поэтому вам нужно быть явным:

GetObj<TheActualType>(arg); 
Смежные вопросы