29template <
typename StringType>
33 static_assert(std::is_same_v<StringType, std::remove_cv_t<StringType>> &&
TIsTString_V<StringType>,
"TStringOverload expects an unqualified string object type");
35 using CharType =
typename StringType::ElementType;
37 template <
typename ArgType>
38 static constexpr bool IsValidArgType()
50 else if constexpr (std::is_pointer_v<DecayedArgType>)
56 static_assert(
sizeof(
ArgType) == 0,
"Unsupported argument type passed to TStringOverload");
86 return (StringType&&)
String;
94 template <
typename CharType,
typename ArgType>
101 static_assert(std::is_same_v<const TElementType_T<DecayedArgType>,
const CharType>,
"Incorrect string type passed to UE_PRIVATE_TO_STRING macro");
103 else if constexpr (std::is_pointer_v<DecayedArgType>)
105 static_assert(std::is_same_v<const std::remove_pointer_t<DecayedArgType>,
const CharType>,
"Incorrect string type passed to UE_PRIVATE_TO_STRING macro");
109 static_assert(
sizeof(
ArgType) == 0,
"Unsupported argument type passed to TStringOverload");
119#define UE_PRIVATE_TO_UTF8_STRING(Str) FUtf8String(UE::Core::Private::CheckCharType<WIDECHAR>(Str))
120#define UE_PRIVATE_TO_WIDE_STRING(Str) FWideString(UE::Core::Private::CheckCharType<UTF8CHAR>(Str))
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_REQUIRES(...)
Definition Requires.h:86
implementation
Definition PlayInEditorLoadingScope.h:8
ArgType && CheckCharType(ArgType &&Arg)
Definition StringOverload.h:95
Definition IsContiguousContainer.h:16
Definition StringOverload.h:31
StringType String
Definition StringOverload.h:89
TStringOverload(ArgType &&Arg)
Definition StringOverload.h:77
TStringOverload()
Definition StringOverload.h:69
StringType && MoveTemp()
Definition StringOverload.h:82