Je voudrais vous demander un conseil sur le modèle de fonction. J'ai une fonction qui ajoute des données dans le tampon. Mais j'ai aussi besoin d'ajouter une information sur le type de données dans le tampon. Le type de données est un ENUM suivant:Détermination du type dans le modèle de fonction
enum ParameterType
{
UINT,
FLOAT,
DOUBLE
};
Et je dois créer un modèle de fonction de la fonction comme ceci:
void SomeBuffer::append(double par)
{
appendType(DOUBLE);
memcpy(pStr + _length, &par, sizeof(double));
_length += sizeof(double);
appendType(DOUBLE);
}
Pourriez-vous s'il vous plaît me conseiller comment passer une valeur de ParameterType pour appendType() en fonction du type de paramètre.
template<class T>
void SomeBuffer::append(T par)
{
appendType(???);
memcpy(pStr + _length, &par, sizeof(T));
_length += sizeof(T);
appendType(???);
}
J'ai essayé de le faire avec certaines macros mais sans succès. Merci beaucoup pour tout conseil.
Avertissement: La sérialisation de choses avec 'memcpy()' va vous causer des problèmes si la machine qui lit le tampon a une endianité différente de celle de la machine qui écrit le tampon. –