2010-10-27 15 views
1

Je dois créer une carte pouvant contenir n'importe quel type de données de base tel que double, float, string, char etc ... pour stocker des valeurs à partir d'une requête pour un composant serveur .carte qui peut prendre n'importe quel type de base à l'intérieur

Je pensais utiliser une carte comme celle-ci: std::map<std::string, void*>, mais je ne sais pas si c'est une très bonne solution.

Je me demandais si quelqu'un peut vous conseiller sur une meilleure solution. Le point principal est que les valeurs doivent être dans la même carte.

Des conseils?

+1

Les valeurs possibles sont-elles limitées? Ou peut-il être * absolument tout * type? À quoi ça sert? Il est possible qu'il y ait une meilleure solution si nous en savons plus sur ce que vous essayez d'accomplir. – jalf

Répondre

1

Vous pourriez avoir une structure ou union (qui a un champ int, un champ float, etc.) être le type de valeur pour la carte. Ce serait beaucoup plus clair et plus maintenable.

0

Il semble que vous ayez besoin du même service que celui fourni par le type QVariant de Qt. Je ne recommande pas d'utiliser Qt pour cette classe, mais vous pouvez regarder l'API et voir si vous voulez créer quelque chose comme ça.

Docs: http://doc.trolltech.com/4.2/qvariant.html