C++ Builder 2007
Pas encore de TList<> générique disponible, en plus, j'ai cru lire que le générique Delphi utilisée comme template C++, cela n'était pas le top .. si quelqu'un à retour la dessus, est-il possible en 2009 ou XE, d'écire TList<MonTypeCPPAMoi>
Car, dans la Doc "Si le code C++ tente d'utiliser un générique Delphi pour les types qui n'étaient pas instanciés dans Delphi, vous obtiendrez des erreurs lors de la liaison." est inquiétant
Donc, C++ Builder 2007, je me lance dans les templates, en Delphi 7, cela n'existe pas, je découvre et un gros problème se pose
Exemple une TObjetList où l'on est pas obligé de transtyper tout le temps !
Deux spécialisations
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
Si l'on utilise TBiduleList ->IndexOf, ça compile pas ! forcément IsEquals ne fait pas parti de TBidule
En fait, le template, il faut le coder à l'aveugle et ne surtout rien supposer de T
Dans mon vrai projet, j'ai donc déplacé IndexOf de TShaiList vers TMachinList , là où je sais que IsEquals existe !
Existe-il un moyen pour que T hérite d'une classe ?
Exemple de code que je voudrais qui n'existe pas !
Et que le compilateur protège contre
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
mais accepte ça évidemment
Est-ce déjà ma question est pertinente ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
En fait je veux une générique limité à une branche d'objet !
J'ai vu que l'on pouvait utiliser les typedef pour limiter le typename !
Je n'ai pas bien compris la syntaxe d'ailleurs ?

 

 
		
		 
         
 

 
			
			


 
			 
   
 


 Template et Héritage
 Template et Héritage
				 
 
 Répondre avec citation
  Répondre avec citation
Partager