2009-09-02 22 views
48

Je n'arrive pas à choisir entre Boost.Any et Boost.Variant.
Quand devrais-je utiliser chacun d'eux?Boost.Any vs. Boost.Variant

Quels sont les avantages et les inconvénients de chacun?

Je cherche fondamentalement à stocker quelques états de sources externes.

+7

Si vous connaissez tous les types possibles que les données peuvent avoir au moment de la compilation, utilisez Boost. Variante: le nombre de types que vos données peuvent avoir est fini et les types sont vérifiés lors de la compilation. Si ces types peuvent être quelque chose, alors utilisez Boost.Any. – user1284631

Répondre

40

Avez-vous déjà regardé le comparison dans la bibliothèque de variantes?

(Je ne sais pas ce que dit de sources externes sont, il est donc un peu difficile de dire ce qui est plus approprié pour vous.)

+0

En fait, je n'ai jamais vu ça auparavant. Mais quelle est la bonne question à poser pour m'aider à choisir? –

+1

Vous devriez répondre à cette question vous-même - laquelle des caractéristiques est essentielle pour vous? –

+0

Facilité d'utilisation, pas de maux de tête de maintenabilité, la moindre surcharge possible. Je peux estimer ce que mes types vont être mais que faire si je dois en ajouter un autre demain? –