Ich brauche einen Typnamen als Parameter übergeben können:Wie nehme ich einen Typnamen als Parameter in einer Funktion? (C++)
int X = FileRead(file, 9, char);
Das Konzept ist für Fileread (std :: fstream, int pos, ???) pos * sizeof zu lesen (was auch immer der Typ ist), um die gewünschte Position zu erhalten. Ich habe versucht, Vorlagen:
template<typename T>
T FileRead(std::fstream file, int pos, T type)
{
T data;
file.read(reinterpret_cast<char*>(&data), sizeof(data));
return data;
}
aber erforderlich, dass ich eine Variable vom Typ erstelle jedes Mal zu verwenden, wollte ich Fileread verwenden, und ich fühle mich wirklich nicht, wie ein ganzes Programm neu zu gestalten, nur weil eine Funktion, Gibt es einen Typnamen als Parameter?
Dann bekomme ich den Fehler "konnte Argument für 'T' nicht ableiten" –
Ich denke, dass Sie T als Argument und nicht nur als Rückgabewert benötigen. –
Rufen Sie es wie FileRead (Datei, pos); –
sth