Bonjour à tous,

Je suis en train de faire une librairie de gestion de données. Parmis mes classes, on retrouve des "Properties" :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
template<class T>
class CProperty
{
public :
// Set/Get/AddListener/RemoveListener/FromString/ToString
private:
   T m_tValue;
};
Les propriétés sont chargées depuis une base de données via la méthode FromString(valeur en base).

Mais un problème se pose. Dans mon FromString, je crée un T, puis j'injecte la valeur en chaîne de caractères dedans avant de positionner le résultat. Or, si la chaîne est vide (vide en base ou à null), je me retrouve à positionner un T qui n'a pas été initialisé. En gros ça fait ça (par exemple pour un int)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
int i;
SetValue(i);
Et donc ma valeur est à -899898765 des trucs comme ça.

Donc je me suis dit que je vais faire un memset sur mon T en guise d'initialisation. Seulement voilà, j'ai entre autre des clients à gérer, le nombre nominal est de 5000 et chaque client possède plus de 100 propriétés. Est-ce que rajouter un memset au niveau de la propriété va baisser beaucoup les performances ?

Sinon je peux faire au niveau de la donnée. Mais celle-ci héritant de plusieurs classe avec des méthodes virtuelles, est-ce que un memset là dessus ne va pas me bousiller ma vtable ?


Merci beaucoup,

A bientôt