7 template<
typename TContainer,
typename T>
10 using BaseType = std::remove_const_t<std::remove_reference_t<T>>;
12 if constexpr (std::is_arithmetic_v<BaseType>)
14 if constexpr (std::is_same_v<bool, BaseType>)
18 else if constexpr (std::is_integral_v<BaseType>)
20 if constexpr (std::is_signed_v<BaseType>)
29 else if constexpr (std::is_floating_point_v<BaseType>)
34 else if constexpr (std::is_convertible_v<BaseType, FString>)
41 static_assert(!std::is_same_v<T, T>,
"Provided meta data type can't be stored in the Typed Element Data Storage.");
82 return DataView.
IsType<T>();
88 if constexpr (std::is_same_v<T, const FString&>)
90 return DataView.
TryGet<
const FString*>();
92 return DataView.
TryGet<T>();
101 template<
typename Column>
126 template<
typename NextViewType>
143 Result = View.FindGeneric(AttributeName);
144 return Result.IsSet();
146 (Run(AttributeName, Result,
InViews) || ...);
154 return Views.ApplyAfter([&Column, &AttributeName](
const ViewTypes&...
InViews)
159 Result = View.FindForColumn(Column, AttributeName);
160 return Result.IsSet();
162 (Run(Column, AttributeName, Result,
InViews) || ...);
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
Definition NameTypes.h:617
U * TryGet() UE_LIFETIMEBOUND
Definition TVariant.h:174
bool IsType() const
Definition TVariant.h:138
Definition TypedElementMetaData.h:30
TYPEDELEMENTFRAMEWORK_API FMetaDataEntryView()
Definition TypedElementMetaData.cpp:96
bool IsType() const
Definition TypedElementMetaData.inl:80
const T * TryGetExact() const
Definition TypedElementMetaData.inl:86
Definition OverriddenPropertySet.cpp:45
void AddDataToContainer(TContainer &Container, FName Name, T Value)
Definition TypedElementMetaData.inl:8
Definition CommonTypes.cpp:10
TVariant< bool, uint64, int64, double, FString > MetaDataType
Definition TypedElementMetaData.h:23
Definition WeakObjectPtrTemplates.h:25