Nicht aufgelöstes externes symbol (templatefunktion)
-
Hio, hab n problem und find es grad einfach nicht

es geht um folgende templatefunktion:
die cpp:template<class T> T* ReadBinaryFile(std::string FilePath){ T* TmpObject = NULL; std::ifstream read(FilePath, std::ios::binary); if(read){ TmpObject = new T(); read.read((char*) TmpObject, sizeof(T)); read.close(); } else{ std::cout << "Error Loading File: " << FilePath << std::endl; } return TmpObject; }hpp:
template<class T> T* ReadBinaryFile(std::string FilePath);aufruf(mMainSettings ist ein Pointer auf Settings, die .bin datei existiert nicht, aber das soltle doch eig die if abfrage in der einlesefunktion abfangen?):
if(ReadBinaryFile<Settings>("Save/Settings/Settings.bin") != NULL) mMainSettings->operator=(ReadBinaryFile<Settings>("Save/Settings/Settings.bin"));fehler:
Verweis auf nicht aufgelöstes externes Symbol ""class Settings * __cdecl ReadBinaryFile<class Settings>(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (??basic_string@DU?allocator@D@2@@std@@@Z)" in Funktion ""private: void __thiscall Framework::LoadSettings(void)" (?LoadSettings@Framework@@AAEXXZ)".Seh da grad vrmtl. den wald vor lauter bäumen nicht

-
Du musst Templates im Header definieren.
-
Siehe Haeufig gestellte Fragen unter Punkt 5.
-
ok, danke, wusste ich nichmehr

ewig keine templates mehr genutzt.