14#include "CoreMinimal.h"
38 template <
template <
typename...>
typename Template>
42 static constexpr bool Match =
false;
44 template <
typename... Params>
45 static constexpr bool Match<Template<Params...>> =
true;
53 template <
typename... Params>
56 using Type = TTuple<Params...>;
68 template <
template <
typename...>
typename Template,
typename T>
79 template <
template <
typename...>
typename Template,
typename T>
80 concept CIsTemplate = TTemplate<Template>::template Match<T>::Value;
82 template <CConstType T>
83 auto AsConst(T&& input) {
return Forward<T>(input); }
85 template <CMutableType T>
86 auto AsConst(T&& input) {
return Forward<T>(
const_cast<const T
>(input)); }
88 template <CMutableType T>
89 auto AsMutable(T&& input) {
return Forward<T>(input); }
91 template <CConstType T>
92 auto AsMutable(T&& input) {
return Forward<T>(
const_cast<T
>(input)); }
98 auto AsConstPtr(T* input) {
return const_cast<const T*
>(input); }
100 template <
typename T>
103 template <
typename T>
typename TTemplate< Template >::template Parameters< T >::Type TTemplate_Params
auto AsConstPtr(const T *input)
auto AsMutablePtr(T *input)
auto AsMutable(T &&input)
static constexpr bool Match