Result
Item.h
UCLASS() class ***_API AItem : public AActor { GENERATED_BODY() public: AItem(); protected: virtual void BeginPlay() override; template<typename T> T Avg(T First, T Second); }; template<typename T> inline T AItem::Avg(T First, T Second) { return (First + Second) / 2; }
Item.cpp
void AItem::BeginPlay() { Super::BeginPlay(); int32 AvgInt = Avg<int32>(3, 5); UE_LOG(LogTemp, Warning, TEXT("Avg 3 and 5 : %d"), AvgInt); float AvgFloat = Avg<float>(3.15f, 5.234f); UE_LOG(LogTemp, Warning, TEXT("Avg 3.15 and 5.234 : %f"), AvgFloat); FVector AvgVector = Avg<FVector>(GetActorLocation(), FVector::ZeroVector); DRAW_POINT_SingleFrame(AvgVector); }