Thank you for the reply Jas. I have read the documentation you mentioned but as far as I can tell, it does not specify what the behavior I listed above is though.
Since posting this I’ve learned that using the FString constructor on an existing FString produces a copy of it, but I still have no idea what a naked assignment does.
Constructor example:
FString str1 = FString(TEXT("Hello ");
FString str2 = FString(str1);
FString str3 = FString(TEXT("World!");
str2.AppendChars(*str3, str3.Len());
str2 should contain “Hello World!” and str1 should still contain "Hello "
I also realize now it might be helpful to specify I’m using unreal engine 5.4, not unreal engine 4. I have looked at the documentation for UE5.4 and it also doesn’t specify what this behavior is either though (again unless I missed it).