1. ホーム
  2. c++

[解決済み] T' のテンプレート引数を推論できませんでした。

2022-02-15 14:36:49

質問

私のコードは:

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'

正解をおしえてください。

どのように解決するのですか?

関数テンプレートのシグネチャには、コンパイラがテンプレートの型を推論できるようなものはないので、明示的に記述する必要があります。

GetObj<TheActualType>(arg);