Je souhaite mapper un pointeur sur un nombre entier à des fins de sérialisation. Les pointeurs peuvent être de types différents et peuvent pointer vers des objets polymorphes en utilisant éventuellement l'héritage multiple. J'ai besoin d'interroger la carte pour savoir si le pointeur est stocké dedans et si c'est le cas, alors quelle est la valeur intégrale associée.Pointeur efficace vers le mappage d'entiers et la recherche en C++
Quelle est la bonne façon de le faire?
La manière simple de map<void*, int>
que je pensais ne fonctionnerait pas car operator <
n'est pas défini pour les pointeurs arbitraires. Ou est-ce pas un problème sur les systèmes communs? Une autre solution serait d'avoir vector<void*>
. Mais cela nécessiterait de faire une boucle sur tous les pointeurs stockés et je ne suis pas sûr que la conversion en void *
ne rompe pas le operator ==
pour les objets utilisant l'héritage.
"que je pensais ne fonctionnerait pas parce que l'opérateur
Chubsdad
Avez-vous envisagé d'utiliser une bibliothèque? Exemples: s11.net ou boost.serialization –
Oui, j'ai envisagé d'utiliser boost :: serialization, mais cela nécessiterait quelques ajustements pour être utilisable sur mes données. –