Bonjour à tous,
quand j'écris :
j'obtiens l'erreur "error: ‘InitializeOXYZ_impl’ is not a class template". Cette erreur n'est pas difficile à régler : il suffit de mettre le morceau de code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 template<typename PTYPE, int DIM> class PairSingInfo{ // des trucs void initializeOXYZ() { return InitializeOXYZ_impl<PTYPE,DIM>::initializeOXYZ(*this); } friend struct InitializeOXYZ_impl<PTYPE,DIM>; //d'autres trucs }; template<typename PTYPE, int DIM> struct InitializeOXYZ_impl{}; template<typename PTYPE> struct InitializeOXYZ_impl<PTYPE,2>{ void initializeOXYZ(PairSingInfo<PTYPE,2>& p){ //des trucs } }; template<typename PTYPE> struct InitializeOXYZ_impl<PTYPE,3>{ void initializeOXYZ(PairSingInfo<PTYPE,3>& p){ //des trucs } };
au début. Mais pourquoi ? Le code, par exemple, se fiche que la fonction membre initializeOXYZ(PairSingInfo<PTYPE,3>& p) de InitializeOXYZ_impl soit déclarée après la déclaration de PairSingInfo ... ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 template<typename PTYPE, int DIM> struct InitializeOXYZ_impl{};
Partager