Salut!

C'est un peu le bazar dans mon framework de simulation. Du coup je veux rendre la vie un peu plus simple à l'utilisateur.

Le plus difficile c'est de se repérer correctement dans l'espace des modèles possibles. Du coup plutot que de donner un nom de classe à chaque modèle, je me demande si ce serait pas mieux de choisir une methode via une série de types (traits?) donnant les hypothèse du modèle. Le modèle / la fonction à appeler serait construit au compile-time, mais un patron multimethods permettrait de trouver la bonne fonction à appeler si ces choix se font au runtime via par exemple boost::program_options.

Du coup en pseudo code on pourrait faire un truc comme:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
model =
{
  no_selection,
  no_mutation,
  no_migration,
  non_overlapping_generation_times,
  random_mating,
  discrete_time
};
 
simulate(model);
Ca peut marcher un truc comme ça, ou je dis n'importe quoi? C'est possible à terme de choisir la fonction/modèle à appeler au runtime, n'est-ce pas?