[cpp-ue4] Fix generated code not compiling when using unique array items (#17684)

* Add CollectionToUrlString for TSet

Added a template for converting collection to url string parameters for associative container

* Add generated samples

* Add TSet template

* Fix iterator
This commit is contained in:
roseatromero
2024-01-27 02:32:40 +00:00
committed by GitHub
parent aa15ef9ab9
commit d152f4d995
2 changed files with 48 additions and 0 deletions

View File

@@ -197,6 +197,30 @@ inline FString CollectionToUrlString_multi(const TArray<T>& Collection, const TC
return Output;
}
template <typename T>
inline FString CollectionToUrlString_multi(const TSet<T>& Collection, const TCHAR* BaseName)
{
FString Output;
if (Collection.Num() == 0)
{
return Output;
}
int32 Index = 0;
for (typename TSet<T>::TConstIterator Iter = Collection.CreateConstIterator(); Iter; ++Iter)
{
if (Index == 0)
{
Output += FString::Format(TEXT("{0}={1}"), { FStringFormatArg(BaseName), ToUrlString(*Iter) });
Index++;
continue;
}
Output += FString::Format(TEXT("&{0}={1}"), { FStringFormatArg(BaseName), ToUrlString(*Iter) });
}
return Output;
}
//////////////////////////////////////////////////////////////////////////
inline void WriteJsonValue(JsonWriter& Writer, const TSharedPtr<FJsonValue>& Value)

View File

@@ -206,6 +206,30 @@ inline FString CollectionToUrlString_multi(const TArray<T>& Collection, const TC
return Output;
}
template <typename T>
inline FString CollectionToUrlString_multi(const TSet<T>& Collection, const TCHAR* BaseName)
{
FString Output;
if (Collection.Num() == 0)
{
return Output;
}
int32 Index = 0;
for (typename TSet<T>::TConstIterator Iter = Collection.CreateConstIterator(); Iter; ++Iter)
{
if (Index == 0)
{
Output += FString::Format(TEXT("{0}={1}"), { FStringFormatArg(BaseName), ToUrlString(*Iter) });
Index++;
continue;
}
Output += FString::Format(TEXT("&{0}={1}"), { FStringFormatArg(BaseName), ToUrlString(*Iter) });
}
return Output;
}
//////////////////////////////////////////////////////////////////////////
inline void WriteJsonValue(JsonWriter& Writer, const TSharedPtr<FJsonValue>& Value)