UExporter::UExporter(const FObjectInitializer& ObjectInitializer)
    : Super(ObjectInitializer)
{
    if ( HasAnyFlags(RF_ClassDefaultObject) )
    {
        TWeakObjectPtr<UExporter> DefaultExporterObj(this);
        TWeakObjectPtr<UExporter>* PreviousObj = RegisteredExporters.Find(DefaultExporterObj);
        if(!PreviousObj)
        {
            RegisteredExporters.Add(DefaultExporterObj);
        }
        else if(!PreviousObj->IsValid())
        {
            RegisteredExporters.Remove(*PreviousObj);
            RegisteredExporters.Add(DefaultExporterObj);
        }
    }
}
UExporter::UExporter(const class FPostConstructInitializeProperties& PCIP)
	: Super(PCIP)
{
	if ( HasAnyFlags(RF_ClassDefaultObject) )
	{
		TWeakObjectPtr<UExporter> DefaultExporterObj(this);
		TWeakObjectPtr<UExporter>* PreviousObj = RegisteredExporters.Find(DefaultExporterObj);
		if(!PreviousObj)
		{
			RegisteredExporters.Add(DefaultExporterObj);
		}
		else if(!PreviousObj->IsValid())
		{
			RegisteredExporters.Remove(*PreviousObj);
			RegisteredExporters.Add(DefaultExporterObj);
		}
	}
}