Sous-matrice et std::reference_wrapper
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 :
Code:
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
} |
Avez-vous une idée pour me dépatouiller de cette situation ?
Merci à tous !!