Donc, cette question a été posée auparavant, mais je voulais une question avec certains de ces mots clés dans le titre.ID numérique unique pour une classe modélisée utilisant l'adresse de fonction
Le problème est simple: Comment puis-je avoir une classe modélisée, de sorte que pour chaque instance du modèle - mais pas chaque instance de la classe - il existe un identifiant numérique unique?
C'est un moyen de différencier:
foo<int> f1;
foo<char> f2;
classID(f1) != classID(f2);
mais,
foo<int> f3;
foo<int> f4;
classID(f3) == classID(f4);
liés à:
in C++, how to use a singleton to ensure that each class has a unique integral ID?
Assigning Unique Numerical Identifiers to Instances of a Templated Class
J'ai choisi ma propre réponse parce qu'il est a) plus simple et b) le temps de compilation statique constante , Autant que je sache. – Narfanator
J'ai testé cela avec VS 2015 et cela fonctionne lors de la compilation pour Debug mais pas lors de la compilation pour Release. Lors de la compilation pour Release, l'optimiseur combine toutes les fonctions classID() en une seule. Donc, foo.classID == foo2.classID == foo3.classID. – adigostin
Merde. Doit trouver un nouveau truc, maintenant ... – Narfanator