Hio, hab n problem und find es grad einfach nicht :/
(sprache ist c++)
es geht um folgende templatefunktion:
die cpp:
Code:
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:
Code:
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?):
Code:
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> >)" (??$ReadBinaryFile@VSettings@@@@YAPAVSettings@@V?$basic_string@DU?$char_traits@D @std@@V?$allocator@D@2@@std@@@Z)" in Funktion ""private: void __thiscall Framework::LoadSettings(void)" (?LoadSettings@Framework@@AAEXXZ)".
e: habs, bitte nich lachen an die dies wissen... wusste nichmehr, dass templatefunktionen nicht in hpp und cpp gesplitet werden können 8auf diese weise zuminest)
Seh da grad vrmtl. den wald vor lauter bäumen nicht :/