A part le fait qu'une éventuelle analyse statique puisse trouver le résultat par avance, tu penses à quoi comme optimisation? Parce qu'a priori, un dynamic_cast me semble plus coûteux qu'une fonction virtuelle renvoyant un enum.
Version imprimable
Jean-Marc.Bourguer << Oui je comprend très bien la différence.
On trouve le type par vérification de la réussite (ou pas) du cast.
Mais bon c'était pour simplifier mon idée bien qu'au final ma simplification se soit révélé foireuse :aie:.
Je pensais à l'optimisation faisant qu'un dynamic_cast puisse être optimisé sous forme d'une fonction virtuelle retournant directement un ajustement de pointeur this (§5.3.8 du performance report), ce qui fait un coût de base équivalent, plus toute la magie noire qu'un compilateur peut mettre en oeuvre sur des opérations très courantes, et à laquelle je ne connais rien.
J'ai probablement été un peu optimiste en disant plus rapide, disons du même ordre de grandeur.