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 :
Pour info, nt2::settings<nt2::FORTRAN_policy> vise simplement à faire débuter la matrice à l'indice 1, donc comme en MATLAB.
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;
Le code suivant
permet par exemple de déclarer une matrice de double.
Code : Sélectionner tout - Visualiser dans une fenêtre à part M_d maMatrice;
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 :
Est ce qu'une solution à mon problème existe, en utilisant notamment les templates ?
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;
Merci.
Partager