使用类类型模板调用静态类方法

时间:2016-02-08 05:17:07

标签: c++ templates specialization

我已经看到了关于这方面的问题而没有明确的答案,如果这可能是任何其他方式/如果它应该以不同的方式完成。说我有这个:

template <typename T>
static T* SelfSpawn(UWorld* World, AActor* OwnerParam)
{
    if(!World)
    {
        return nullptr;
    }

    FActorSpawnParameters Params = FActorSpawnParameters();
    Params.Owner = OwnerParam;
    T* ThisActor = World->SpawnActorDeferred<T>(T::StaticClass(), FTransform(FRotator(0.f, 90.f, -90.f)));

    AActor* NewActor = UGameplayStatics::FinishSpawningActor(ThisActor, FTransform(FRotator(0.f, 90.f, -90.f)));

    return Cast<T>(NewActor);
}

T :: StaticClass()会抛出错误,因为它不确定T是否是类类型。我的问题是,无论如何都要进行模板专业化或类似的事情以保证T是类类型以便这样做吗?

0 个答案:

没有答案