Bonjour,

En fonction d'un entier donné, je dois créer un objet d'un type donné. Hop, on va tout droit vers une fabrique.

Mon problème est que je dois refiler le produit de cette fabrique à une fonction qui ne va pas consommer ce produit de manière polymorphique classique, car il utilise un polymorphisme statique.
Le type de l'argument en question est templatisé, et le polymorphisme est implémenté sous forme de respect d'un "concept". Tout est donc géré de manière statique. Et là, on sort hautement du design pattern "fabrique", qui est basé sur le virtualité.

Bref, je dois déterminer à l'exécution un type sans pouvoir faire de polymorphisme dynamique.

Sinon, il y a la possibilité de faire un switch, avec chaque case créant le bon type d'objet, et appelant la fonction en question. Comme la fonction prend 15 arguments (ce n'est pas moi qui l'ai faite !), j'aurais aimé éviter cette solution.

Je vais essayer de voir dans Boost::MPL si on peut indexer dynamiquement une liste de types....

PS : apparemment, le decltype(auto) de C++ 14 aurait pu me sortir d'affaire, mais je suis bloqué à C++11.