无法推断出'T'的模板参数

3

我的代码是:

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'

请帮我提供正确答案。


5
您需要这样调用函数:GetObj<实际类型>(参数); - juanchopanza
1个回答

11

函数模板的声明没有任何内容可以让编译器推断出模板类型,因此您需要显式地指定:

GetObj<TheActualType>(arg);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接