37 template<UE::CCharType CharType>
105template <UE::CCharType CharType>
131 template <UE::CCompatibleCharType<CharType> OtherCharType>
139 template <UE::CCompatibleCharType<CharType> OtherCharType>
147 template <UE::CNotCVRefTo<ViewType> CharRangeType>
170 return static_cast<SIZE_T>(
Size) *
sizeof(CharType);
305 template <UE::CCharType OtherCharType>
317 template <UE::CStringViewable OtherRangeType>
326 template <UE::CCharType OtherCharType>
329 return PrivateEquals(
Other, SearchCase);
339 template <UE::CStringViewable OtherRangeType>
349 template <UE::CCharType OtherCharType>
352 return PrivateCompare(
Other, SearchCase);
362 template <UE::CCharType OtherCharType>
430 static bool PrivateEquals(
TStringView Lhs,
const CharType* Rhs);
435 template <UE::CCharType OtherCharType>
438 template <UE::CCharType OtherCharType>
464 template <UE::CConvertibleTo<TStringView> CharRangeType>
470 template <UE::CConvertibleTo<TStringView> CharRangeType>
476 template <UE::CConvertibleTo<TStringView> CharRangeType>
484 return TStringView::PrivateEquals(*
this, Rhs);
502template <
typename CharRangeType>
506template <
typename CharPtrOrRangeType>
513template <UE::CCharType CharType>
521#if PLATFORM_TCHAR_IS_UTF8CHAR
550#if PLATFORM_TCHAR_IS_UTF8CHAR
551 #define TEXTVIEW(str) (str##_PrivateSV)
553 #define TEXTVIEW(str) TEXT(str##_PrivateSV)
555#define ANSITEXTVIEW(str) (str##_PrivateASV)
556#define WIDETEXTVIEW(str) PREPROCESSOR_JOIN(WIDETEXT(str), _PrivateWSV)
557#define UTF8TEXTVIEW(str) (str##_PrivateU8SV)
561template <UE::CCharType CharType>
565 return DataPtr[
Index];
568template <UE::CCharType CharType>
579template <UE::CCharType CharType>
585template <UE::CCharType CharType>
591template <UE::CCharType CharType>
598template <UE::CCharType CharType>
605template <UE::CCharType CharType>
609 const int32 CurrentLength = Len();
626template <UE::CCharType CharType>
632template <UE::CCharType CharType>
636 for (CharType
Char : *
this)
647template <UE::CCharType CharType>
658template <UE::CCharType CharType>
659template <UE::CCharType OtherCharType>
677template <UE::CCharType CharType>
678template <UE::CCharType OtherCharType>
708template <UE::CCharType CharType>
709template <UE::CCharType OtherCharType>
720 Result = FPlatformString::Strncmp(
GetData(),
Other, Len());
724 Result = FPlatformString::Strnicmp(
GetData(),
Other, Len());
733 return -!!
Other[Len()];
736template <UE::CCharType CharType>
739 return Prefix.Equals(
Left(Prefix.Len()), SearchCase);
742template <UE::CCharType CharType>
745 return Suffix.Equals(
Right(Suffix.Len()), SearchCase);
748template <UE::CCharType CharType>
755template <UE::CCharType CharType>
762template <UE::CCharType CharType>
769template <UE::CCharType CharType>
775template <UE::CCharType CharType>
781template <UE::CCharType CharType>
787template <UE::CCharType CharType>
793template <UE::CCharType CharType>
794template <UE::CStringViewable OtherRangeType>
800template <UE::CCharType CharType>
801template <UE::CStringViewable OtherRangeType>
807#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_7
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define MAX_int32
Definition NumericLimits.h:25
auto GetData(const TStringConversion< Converter, DefaultConversionSize > &Conversion) -> decltype(Conversion.Get())
Definition StringConv.h:802
TStringView< UTF8CHAR > FUtf8StringView
Definition StringFwd.h:48
TStringView< TCHAR > FStringView
Definition StringFwd.h:45
TStringView< WIDECHAR > FWideStringView
Definition StringFwd.h:47
TStringView< ANSICHAR > FAnsiStringView
Definition StringFwd.h:46
constexpr auto MakeStringView(const CharPtrOrRangeType &CharPtrOrRange UE_LIFETIMEBOUND) -> decltype(TStringView(CharPtrOrRange))
Definition StringView.h:508
uint32 Size
Definition VulkanMemory.cpp:4034
Definition Core.Build.cs:8
Definition StringView.h:107
void LeftChopInline(int32 CharCount)
Definition StringView.h:255
ViewType Right(int32 CharCount) const
Definition StringView.h:592
constexpr const CharType * end() const
Definition StringView.h:493
int32 Compare(const OtherRangeType &Other, ESearchCase::Type SearchCase=ESearchCase::CaseSensitive) const
Definition StringView.h:802
void RightChopInline(int32 CharCount)
Definition StringView.h:267
friend uint32 GetTypeHash(TStringView View)
Definition StringView.h:448
ViewType SubStr(int32 Position, int32 CharCount) const
Definition StringView.h:219
const CharType * DataPtr
Definition StringView.h:498
int32 CopyString(CharType *Dest, int32 CharCount, int32 Position=0) const
Definition StringView.h:569
ViewType LeftChop(int32 CharCount) const
Definition StringView.h:586
UE_REWRITE bool UEOpEquals(const CharType *Rhs) const
Definition StringView.h:482
constexpr TStringView(const CharType *InData UE_LIFETIMEBOUND)
Definition StringView.h:117
CharType ElementType
Definition StringView.h:109
constexpr TReversePointerIterator< const CharType > rbegin() const
Definition StringView.h:494
void Reset()
Definition StringView.h:199
bool FindLastChar(CharType Search, int32 &OutIndex) const
Definition StringView.h:763
bool Equals(const OtherCharType *Other, ESearchCase::Type SearchCase=ESearchCase::CaseSensitive) const
Definition StringView.h:327
constexpr bool IsEmpty() const
Definition StringView.h:180
UE_REWRITE auto UEOpEquals(CharRangeType &&Rhs) const
Definition StringView.h:465
UE_REWRITE auto UEOpLessThan(CharRangeType &&Rhs)
Definition StringView.h:471
bool Contains(ViewType Search, ESearchCase::Type SearchCase=ESearchCase::CaseSensitive) const
Definition StringView.h:394
void RightInline(int32 CharCount)
Definition StringView.h:261
bool EndsWith(ViewType Suffix, ESearchCase::Type SearchCase=ESearchCase::IgnoreCase) const
Definition StringView.h:743
void RemoveSuffix(int32 CharCount)
Definition StringView.h:194
constexpr TStringView(const CharRangeType &InRange UE_LIFETIMEBOUND)
Definition StringView.h:150
bool Equals(TStringView< OtherCharType > OtherView, ESearchCase::Type SearchCase=ESearchCase::CaseSensitive) const
Definition StringView.h:306
int32 Compare(TStringView< OtherCharType > Other, ESearchCase::Type SearchCase=ESearchCase::CaseSensitive) const
Definition StringView.h:350
bool EndsWith(CharType Suffix) const
Definition StringView.h:371
void TrimStartInline()
Definition StringView.h:285
constexpr TStringView(const OtherCharType *InData UE_LIFETIMEBOUND, int32 InSize)
Definition StringView.h:140
int32 Compare(const OtherCharType *Other, ESearchCase::Type SearchCase=ESearchCase::CaseSensitive) const
Definition StringView.h:710
void RemovePrefix(int32 CharCount)
Definition StringView.h:188
ViewType Mid(int32 Position, int32 CharCount=MAX_int32) const
Definition StringView.h:606
constexpr int32 Len() const
Definition StringView.h:174
bool UEOpLessThan(TStringView Rhs) const
Definition StringView.h:459
const CharType & operator[](int32 Index) const
Definition StringView.h:562
void TrimStartAndEndInline()
Definition StringView.h:279
ViewType RightChop(int32 CharCount) const
Definition StringView.h:599
UE_REWRITE auto UEOpGreaterThan(CharRangeType &&Rhs)
Definition StringView.h:477
ViewType TrimStart() const
Definition StringView.h:633
ViewType Left(int32 CharCount) const
Definition StringView.h:580
void MidInline(int32 Position, int32 CharCount=MAX_int32)
Definition StringView.h:273
bool Equals(const OtherRangeType &Other, ESearchCase::Type SearchCase=ESearchCase::CaseSensitive) const
Definition StringView.h:795
constexpr TReversePointerIterator< const CharType > rend() const
Definition StringView.h:495
bool UEOpEquals(TStringView Rhs) const
Definition StringView.h:454
constexpr SIZE_T NumBytes() const
Definition StringView.h:168
constexpr const CharType * GetData() const
Definition StringView.h:160
constexpr TStringView(const CharType *InData UE_LIFETIMEBOUND, int32 InSize)
Definition StringView.h:124
bool StartsWith(CharType Prefix) const
Definition StringView.h:366
void TrimEndInline()
Definition StringView.h:291
void LeftInline(int32 CharCount)
Definition StringView.h:249
friend constexpr auto GetNum(TStringView String)
Definition StringView.h:442
int32 Find(ViewType Search, int32 StartPosition=0, ESearchCase::Type SearchCase=ESearchCase::CaseSensitive) const
Definition StringView.h:749
int32 Size
Definition StringView.h:499
constexpr const CharType * begin() const
Definition StringView.h:492
bool StartsWith(ViewType Prefix, ESearchCase::Type SearchCase=ESearchCase::IgnoreCase) const
Definition StringView.h:737
TStringView(const OtherCharType *InData UE_LIFETIMEBOUND)
Definition StringView.h:132
constexpr TStringView()=default
UE_FORCEINLINE_HINT bool IsValidIndex(int32 Index) const
Definition StringView.h:424
ViewType TrimStartAndEnd() const
Definition StringView.h:627
bool FindChar(CharType Search, int32 &OutIndex) const
Definition StringView.h:756
ViewType TrimEnd() const
Definition StringView.h:648
Definition CompatibleStringViewable.h:15
Type
Definition CString.h:21
@ IgnoreCase
Definition CString.h:26
@ CaseSensitive
Definition CString.h:23
Definition OverriddenPropertySet.cpp:45
implementation
Definition PlayInEditorLoadingScope.h:8
constexpr auto StringViewGetData(ArgTypes &&... Args) -> decltype(GetData(Forward< ArgTypes >(Args)...))
Definition StringView.h:32
constexpr int32 StringLength(const CharType *InString)
Definition StringView.h:38
UE_STRING_CLASS Result(Forward< LhsType >(Lhs), RhsLen)
Definition String.cpp.inl:732
int32 FindLastChar(FUtf8StringView View, UTF8CHAR Search, ESearchCase::Type SearchCase)
Definition Find.cpp:455
int32 FindFirst(FUtf8StringView View, FUtf8StringView Search, ESearchCase::Type SearchCase)
Definition Find.cpp:395
int32 FindFirstChar(FUtf8StringView View, UTF8CHAR Search, ESearchCase::Type SearchCase)
Definition Find.cpp:445
Definition AdvancedWidgetsModule.cpp:13
U16 Index
Definition radfft.cpp:71
static uint32 Strihash_DEPRECATED(const CharType *Data)
static constexpr UE_FORCEINLINE_HINT T Clamp(const T X, const T MinValue, const T MaxValue)
Definition UnrealMathUtility.h:592
static UE_FORCEINLINE_HINT void * Memcpy(void *Dest, const void *Src, SIZE_T Count)
Definition UnrealMemory.h:160
static int32 Strlen(const CharType *String)
Definition CString.h:1047
Definition ReverseIterate.h:13