han wrote on Sep 7
th, 2016 at 4:08pm:
As for compiler [VC6] bugs, I never ran into a single one so far, for uc i did.
Well actually I did before.
// Load a class object.
template< class T > UClass* LoadClass( UObject* Outer, const TCHAR* Name, const TCHAR* Filename, DWORD LoadFlags, UPackageMap* Sandbox )
{
return UObject::StaticLoadClass( T::StaticClass(), Outer, Name, Filename, LoadFlags, Sandbox );
}
// Inside a single function.
UClass* ClientClass = LoadClass<UClient>( [...] );
UClass* RenderClass = LoadClass<URenderBase>( [...] );
When compiled under VC6 this translates in my case to:
UClass* ClientClass = LoadClass<URenderBase>( [...] );
UClass* RenderClass = LoadClass<URenderBase>( [...] );
So as a workaround one can replace it with a direct StaticLoadClass() call. Eventually commenting this out in the headers to.
Other templates like ConstructObject doesn't seem to be affected, but maybe one shouldn't rely on it.