Bonjour à tous,
Je suis en train de faire une librairie de gestion de données. Parmis mes classes, on retrouve des "Properties" :
Les propriétés sont chargées depuis une base de données via la méthode FromString(valeur en base).
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; };
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)
Et donc ma valeur est à -899898765 des trucs comme ça.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 int i; SetValue(i);
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
Partager