Bonjour !
Cette discussion m'a semblé importante, je n'arrive cependant pas à comprendre les subtilités.
J'ai beau "réflexionner", ces typedef, ils servent à quoi ?!Cela demande un peu de réflexion pour y arriver, mais, une fois que tu penses à utiliser typedef le principe est cependant simplissime
Le code n'est pas complet mais j'imagine la suite ainsi (dites moi si je me trompes)
Pourquoi ne pas faire simplement :
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 struct Point2DFlag{}; struct Point3DFlag{}; template <typename Type, typename Flag> class Point; template <typename Type> class Point<Type, Point2DFlag> { public: typedef Type value_type;//Ils permettent de récupérer sur quel type on travaille ? typedef Point2DFlag flag_type;//Et sous quelle forme ? typedef Point<value_type, flag_type> point_type;//Là je vois pas trop... //Ensuite ce n'est que supposition : Point<Type, Point2DFlag>( const value_type x, const value_type y ) : x( x ), y( y ) {} const value_type GetX() const { return x; } const value_type GetY() const { return y; } private: value_type x; value_type y; };
Je ne vois pas vraiment la différence..
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 struct Point2DFlag{}; struct Point3DFlag{}; template <typename Type, typename Flag> class Point; template <typename Type> class Point<Type, Point2DFlag> { public: Point( const Type x, const Type y ) : x( x ), y( y ) {} const Type GetX() const { return x; } const Type GetY() const { return y; } private: Type x; Type y; };
La suite me pose aussi problème, j'y reviendrais sans doute après.![]()
Partager