Hello,
Dans Boost.Accumulator, on peut apercevoir l'utilisation de templates variadiques.
Or, je croyais que cette fonctionnalité n'était apportée que par C++11.
Quelqu'un peut-il m'éclairer sur ce point ?
 Boost & templates variadiques
 Boost & templates variadiques
				
				
						
							
							
						
						
				Hello,
Dans Boost.Accumulator, on peut apercevoir l'utilisation de templates variadiques.
Or, je croyais que cette fonctionnalité n'était apportée que par C++11.
Quelqu'un peut-il m'éclairer sur ce point ?
 
 
				
				
						
						
				Bonjour,
Oui c'est une fonctionnalité du C++2011, mais on sait l'émuler (pour l'utilisateur) :
Et en rajoutant de la méta-prog préprocesseur (boost::pp), on arrive à quelque chose de plus propre (les répétitions pour les spécialisations et le nombres maximum de paramètres sont générés par le préprocesseur) :
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
Je ne sais pas si c'est exactement comme ca que fonctionne boost::accumulator, mais c'est une solution viable il me semble.
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
 
 
				
				
						
						
				Salut,
Cf ici.
Ressources proposées par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
 
 
				
				
						
						
				OK, merci !
Je suis encore intrigué par la syntaxe "...", mais il faudrait que je regarde le code Boost, qui n'est actuellement pas installé sur mon PC.
 
 
				
				
						
						
				Les ... dans la liste des paramètre template dans la doc veulent juste dire qu'on peut mettre plus de paramètre, il ne font pas partie de la syntaxe du langage (pas sous cette forme du moins).
Si tu ouvres le code de boost tu ne retrouveras pas ces ... dans la liste des paramètre template. Loufoque dans le lien donné par 3DArchi cite les deux méthodes pour simuler les variadics, le code que j'ai donné (le second) est une répétition horizontale.
Partager