EM_Task/CoreUObject/Private/Templates/Casts.cpp
Boshuang Zhao 5144a49c9b add
2026-02-13 16:18:33 +08:00

44 lines
1.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Templates/Casts.h"
DECLARE_LOG_CATEGORY_EXTERN(LogCasts, Log, All);
DEFINE_LOG_CATEGORY(LogCasts);
void CastLogError(const TCHAR* FromType, const TCHAR* ToType)
{
UE_LOG(LogCasts, Fatal, TEXT("Cast of %s to %s failed"), FromType, ToType);
for (;;)
;
}
#if HACK_HEADER_GENERATOR
//////////////////////////////////////////////////////////////////////////
// ClassCastFlagMap
ClassCastFlagMap::ClassCastFlagMap()
{
// Define macro to be applied to all cast class declarations.
#define DECLARE_CAST_BY_FLAG(ClassName) CastFlagMap.Add(FString(#ClassName), CASTCLASS_##ClassName);
// Now apply the macro to the whole list.
DECLARE_ALL_CAST_FLAGS;
#undef DECLARE_CAST_BY_FLAG
}
ClassCastFlagMap& ClassCastFlagMap::Get()
{
static ClassCastFlagMap TheInstance;
return TheInstance;
}
EClassCastFlags ClassCastFlagMap::GetCastFlag(const FString& ClassName) const
{
const EClassCastFlags* ValuePtr = CastFlagMap.Find(ClassName);
return ValuePtr ? *ValuePtr : CASTCLASS_None;
}
#endif // HACK_HEADER_GENERATOR