Я изо всех сил пытаюсь понять, что точно делает следующее # define .
#define REGISTER_CONTEXT( ContextType ) static const FContextRegistrar ContextRegistrar_##ContextType( ContextType::StaticClass() );
REGISTER_CONTEXT(UBlueprintContext);
Насколько я знаю, это добавляет UClass к массиву,так что он может быть использован другой функцией и повторен.Но что делает в этом контексте
ContextRegistrar _ ## ContextType
?Кто-нибудь может дать мне подсказку, пожалуйста?Это вызывает у меня сбой во время выполнения, и я не могу найти что-то похожее.
Это соответствующая структура:
struct FContextRegistrar
{
static TArray<TSubclassOf<UBlueprintLibraryBase>>& GetTypes()
{
static TArray<TSubclassOf<UBlueprintLibraryBase>> Types;
return Types;
}
FContextRegistrar( TSubclassOf<UBlueprintLibraryBase> ClassType )
{
GetTypes().Add( ClassType );
}
};