Bonjour à toutes et à tous,

Dans le cadre d'un programme qui effectue un algorithme, j'ai 2 fonctions qui ont le même prototype mais qui réalise un calcul de manière différente. Par exemple l'une emploie une certaine méthode mathématique, l'autre une seconde méthode mathématique, différente. Je souhaite laisser l'utilisateur choisir quelle méthode mathématique il souhaite utiliser en fonction de son problème. On peut imaginer par exemple 2 fonctions:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
void compute_quantity_1( const arma::mat &, const arma::mat &, const unsigned ){...}
void compute_quantity_2( const arma::mat &, const arma::mat &, const unsigned ){...}
Je vois plusieurs manières de traiter cette question: pointeurs de fonctions, instructions pré-processeur, interface, templates, ...
Sachant que la compilation de l'ensemble des sources est rapide (de l'ordre de 15-20 secondes), et que ces fonctions peuvent être appelées 10^15 ou 10^20 fois, y a t'il une approche à préférer? Quelles seraient les bonnes pratiques? Je n'ai pas pu trouver de guidelines précis sur le net.
merci et bonnes fêtes!