17template<
typename T,
int32 D>
46 std::is_same<T, float>::value ||
47 std::is_same<T, double>::value ||
48 std::is_same<T, int32>::value;
51template<
typename T,
int32 D>
55 "Vector component type must be float, double, or int32");
56 static_assert(
D >= 2 &&
D <= 4,
57 "Vector dimension must be 2, 3, or 4");
60 static_assert(!std::is_same<Type, void>::value,
61 "Invalid vector type combination");
65template<
typename T,
typename =
void>
73template<
typename T,
typename =
void>
81template<
typename T,
typename =
void>
86 std::
void_t<decltype(std::declval<T>().Serialize(std::declval<FArchive&>()))>
90template<
typename T,
typename =
void>
95 std::
void_t<decltype(std::declval<FArchive&>() << std::declval<T&>())>
104template<typename T, typename = void>
105struct THasSizeMethod : std::false_type {};
108struct THasSizeMethod<T, std::void_t<decltype(std::declval<T>().Size())>>
112template<typename T, typename = void>
113struct THasSizeSquaredMethod : std::false_type {};
116struct THasSizeSquaredMethod<T, std::void_t<decltype(std::declval<T>().SizeSquared())>>
120template<typename T, typename = void>
121struct THasDotMethod : std::false_type {};
124struct THasDotMethod<T, std::void_t<decltype(std::declval<T>().Dot(std::declval<T>()))>>
128template<typename T, typename = void>
129struct THasGetSafeNormalMethod : std::false_type {};
132struct THasGetSafeNormalMethod<T, std::void_t<decltype(std::declval<T>().GetSafeNormal())>>
136template<typename T, typename = void>
137struct THasSubtractionOperator : std::false_type {};
140struct THasSubtractionOperator<T, std::void_t<decltype(std::declval<T>() - std::declval<T>())>>
144template<typename T, typename = void>
145struct THasAdditionOperator : std::false_type {};
148struct THasAdditionOperator<T, std::void_t<decltype(std::declval<T>() + std::declval<T>())>>
152template<typename T, typename = void>
153struct THasScalarMultiplicationOperator : std::false_type {};
156struct THasScalarMultiplicationOperator<T, std::void_t<decltype(std::declval<T>() * std::declval<float>())>>
160template<typename T, typename = void>
161struct THasZeroVectorMember : std::false_type {};
164struct THasZeroVectorMember<T, std::void_t<decltype(T::ZeroVector)>>
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define FVector
Definition IOSSystemIncludes.h:8
UE::Math::TVector2< float > FVector2f
Definition MathFwd.h:74
UE::Math::TVector4< double > FVector4d
Definition MathFwd.h:62
UE::Math::TVector< float > FVector3f
Definition MathFwd.h:73
UE::Math::TVector2< double > FVector2D
Definition MathFwd.h:48
UE::Math::TIntVector4< int32 > FIntVector4
Definition MathFwd.h:93
FInt32Vector3 FIntVector
Definition MathFwd.h:115
UE::Math::TVector4< float > FVector4f
Definition MathFwd.h:75
FInt32Point FIntPoint
Definition MathFwd.h:124
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
Definition AdvancedWidgetsModule.cpp:13
Definition ParameterizedTypes.h:53
typename TVectorPolicy< T, D >::Type Type
Definition ParameterizedTypes.h:59
Definition ParameterizedTypes.h:91
Definition ParameterizedTypes.h:74
Definition ParameterizedTypes.h:66
Definition ParameterizedTypes.h:82
Definition ParameterizedTypes.h:44
static constexpr bool Value
Definition ParameterizedTypes.h:45
Definition ParameterizedTypes.h:19
void Type
Definition ParameterizedTypes.h:21