Bonjour,
J'aimerais avoir un peu d'aide sur l'utilisation de templates avec C++.

J'utilise une bibliothèque (NT2) qui - en résumé - manipule des matrices avec un comportement et une syntaxe proche de MATLAB.
Comme ces matrices peuvent manipuler des éléments de différents types (float, double, int, ...), un certain nombre de typedefs sont définis pour alléger la syntaxe :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
typedef nt2::matrix<double,        nt2::settings<nt2::FORTRAN_policy> > M_d;
typedef nt2::matrix<size_t,        nt2::settings<nt2::FORTRAN_policy> > M_t;
typedef nt2::matrix<int,           nt2::settings<nt2::FORTRAN_policy> > M_i;
typedef nt2::matrix<bool,          nt2::settings<nt2::FORTRAN_policy> > M_b;
typedef nt2::matrix<unsigned char, nt2::settings<nt2::FORTRAN_policy> > M_uc;
typedef nt2::matrix<char,          nt2::settings<nt2::FORTRAN_policy> > M_c;
Pour info, nt2::settings<nt2::FORTRAN_policy> vise simplement à faire débuter la matrice à l'indice 1, donc comme en MATLAB.

Le code suivant
permet par exemple de déclarer une matrice de double.

Mon problème est le suivant : j'aimerais pouvoir créer un type un peu plus générique que M_d, M_f, M_i etc... à la manière d'un std::vector<type>, donc :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
monTypeMatrice<double> maMatrice; // anciennement M_d maMatrice;
monTypeMatrice<int> maMatrice; // anciennement M_i maMatrice;
Est ce qu'une solution à mon problème existe, en utilisant notamment les templates ?

Merci.