Bonjour,

Je réalise actuellement un projet et je butte sur des problèmes de templates... Je n'arrive absolument pas à décoincer la situation.

Voilà, j'ai une classe de base, Array. Une classe ArrayView en hérite
J'ai une classe ArrayFix qui hérite de Array, et imbriquée dans ArrayFix une classe ArrayViewFix

Et là, ça se corse. Le compilateur me renvoie des infos dont je ne sais que faire, et malgré mes recherches sur Internet, je ne trouve... Rien de très convaincant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
ArrayFix.hpp:284:25: error: ‘typename Array<int, 2ul>::ArrayView’ names ‘template<class T, long unsigned int D> class Array<int, 2ul>::ArrayView’, which is not a type
 class ArrayFix<T1, D1>::ArrayViewFix : public Array<T2, D2>::ArrayView
J'ai essayé de modifier de pas mal de façons, et je suis un peu perdue :s

À la ligne 284, j'ai ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
template<typename T1, std::size_t D1>
template<typename T2, std::size_t D2>
class ArrayFix<T1, D1>::ArrayViewFix : public Array<T1, D1>::ArrayView
Help :s Si quelqu'un avait de quoi me guider un peu ?! Je ne pense pas que ce que je tente de faire soit totalement décalé, je l'ai déjà fait (bon mais il y avait moins de templates...) et... Pfff

Merci d'avance !

Ps: Bon, j'ai encore des problèmes de compilation, mais on m'a aidée sur le chat à trouver le problème :
Il n'y a qu'un seul template pour la classe imbriquée. Dans ma déclaration, je déclarais avec template, et ce n'est pas nécessaire.
:s