Whenever I attempt to create an instance of a custom template class Unreal crashes and produces the following errors:
2>ActorProperties.cpp.obj : error LNK2019: unresolved external symbol "public: __cdecl MyClass<int>::~MyClass<int>(void)" (??1?$MyClass@H@@QEAA@XZ) referenced in function "int `public: __cdecl ActorPropertyStaticStore::ActorPropertyStaticStore(struct dtor$1 &&)'::`1'::dtor$1" (?dtor$1@?0???0ActorPropertyStaticStore@@QEAA@$$QEAU0@@Z@4HA)
2>ActorPropertyStaticStore.cpp.obj : error LNK2001: unresolved external symbol "public: __cdecl MyClass<int>::~MyClass<int>(void)" (??1?$MyClass@H@@QEAA@XZ)
2>Tetra_MainGameMode.cpp.obj : error LNK2001: unresolved external symbol "public: __cdecl MyClass<int>::~MyClass<int>(void)" (??1?$MyClass@H@@QEAA@XZ)
2>Tetra_Main.generated.cpp.obj : error LNK2001: unresolved external symbol "public: __cdecl MyClass<int>::~MyClass<int>(void)" (??1?$MyClass@H@@QEAA@XZ)
2>ActorPropertyStaticStore.cpp.obj : error LNK2019: unresolved external symbol "public: __cdecl MyClass<int>::MyClass<int>(void)" (??0?$MyClass@H@@QEAA@XZ) referenced in function "public: __cdecl ActorPropertyStaticStore::ActorPropertyStaticStore(void)" (??0ActorPropertyStaticStore@@QEAA@XZ)
2>\Binaries\Win64\UE4Editor-_Main.dll : fatal error LNK1120: 2 unresolved externals
#pragma once
template<typename T>
class MY_MAIN_API MyClass
{
public:
MyClass();
~MyClass();
};
#include "Tetra_Main.h"
#include "MyClass.h"
template<typename T>
MyClass<T>::MyClass()
{
}
template<typename T>
MyClass<T>::~MyClass()
{
}
If I remove the template it works fine. Does the Unreal compiler just not support template classes?