template <typename FmtType, typename... Types>

UE_NODISCARD static typename TEnableIf<TIsArrayOrRefOfType<FmtType, TCHAR>::Value, FString>::Type Printf(const FmtType& Fmt, Types... Args)

{

static_assert(TIsArrayOrRefOfType<FmtType, TCHAR>::Value, "Formatting string must be a TCHAR array.");

static_assert(TAnd<TIsValidVariadicFunctionArg<Types>...>::Value, "Invalid argument(s) passed to FString::Printf");


return PrintfImpl(Fmt, Args...);

}



์ด๊ฑด๋ฐย TEnableIf ํ…œํ”Œ๋ฆฟ ํด๋ž˜์Šค ์จ๊ฐ€์ง€๊ณ ย TIsArrayOrRefOfType์—์„œ ๊ฐ€๋ณ€์ธ์ž์— ์ ํ•ฉํ•œ์ง€ ์•„๋‹Œ์ง€

์ฒดํฌ๋ฅผ ํ•ด์ฃผ๋Š”๊ฑด๋ฐ ใ„นใ…‡ ๊ฐœ์ง€๋ฆผ


template <typename Result>

class TEnableIf<true, Result>

{

public:

using type = Result;

using Type = Result;

};


template <typename Result>

class TEnableIf<false, Result>

{ };