Bonjour à tous !
Je suis en train de faire une classe template matrice (à la fois le type des valeurs stockées mais aussi la taille sont connus à la compilation), ce qui me donne la classe mat<T, N, M>.
Jusque là tout va bien, les accesseurs fonctionnent.
Maintenant je souhaite pouvoir extraire une sous-matrice. Donc pour rendre le comportement transparent sans changer l'interface ni dupliquer le code je me dis pourquoi pas stocker des std::reference_wrapper ! Problème c'est que mon algo de création de matrice à d'abord besoin d'initialiser une matrice qui sera le result, hors std::refrence_wrapper ne dispose pas de constructeur par défaut :
Avez-vous une idée pour me dépatouiller de cette situation ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 // P et Q sont la taille de la sous matrice // M et N sont la taille de la matrice mère // sub est le nom de la fonction membre et i et j sont les indices de départs de la sous matrice template<size_t P, size_t Q> template<typename T, size_t N, size_t M> mat<std::reference_wrapper<T>, P, Q> mat<T, N, M>::sub(size_t i, size_t j) { mat<std::reference_wrapper<T>, P, Q> result; // error du ctr // some code }
Merci à tous !!
Partager