Je dois pouvoir passer un typename comme paramètre:Comment prendre un nom de type comme paramètre dans une fonction? (C++)
int X = FileRead(file, 9, char);
Le concept est pour FileRead (std :: fstream, int pos, ???) pour lire pos * sizeof (quel que soit le type est) pour obtenir la position désirée. J'ai essayé des modèles:
template<typename T>
T FileRead(std::fstream file, int pos, T type)
{
T data;
file.read(reinterpret_cast<char*>(&data), sizeof(data));
return data;
}
, mais ce qui est nécessaire que je crée une variable du type à utiliser chaque fois que je voulais utiliser FileRead, et je ne me sens vraiment pas comme redessiner tout un programme juste parce que d'une fonction, Y a-t-il de toute façon à utiliser un nom de type comme paramètre?
Ensuite, je reçois l'erreur "Impossible de déduire l'argument pour 'T'" –
Je pense que vous auriez besoin de T comme un argument plutôt que comme la valeur de retour. –
Appelez-le comme FileRead (fichier, pos); –
sth