J'ai lu que c'était basé sur la version de Boost, mais je ne savais pas exactement ce que cela signifiait quand il s'agit de l'implémentation. Je sais que Boost fait son propre modèle variadique, mais je suppose que C++ 0x utiliserait ses propres modèles variadiques pour le nouveau tuple.Est-ce que C++ 0x tuple utilise les nouveaux templates variadiques ou l'implémentation de tuple macro-fied de Boost?
4
A
Répondre
6
Le tuple
dans le projet de norme C++ 0x utilise des modèles variadiques C++ 0x. Il est déclaré (§20.4.1):
template <class... Types> class tuple;
Notez, cependant, que les extensions de langage de TR1 également tuple
, qui n'utilise des modèles variadique, car il n'y avait pas une telle chose quand TR1 a été écrit. Dans TR1, tuple
est déclaré (§ 6.1):
template <class T1 = unspecified ,
class T2 = unspecified ,
...,
class TM = unspecified > class tuple;
où M
est une valeur définie par l'implémentation qui devrait être au moins dix. TR1 ne fait pas formellement partie du langage C++, mais de nombreuses implémentations récentes le supportent. Si vous avez une implémentation qui ne prend pas encore en charge les modèles variadiques, elle peut prendre en charge le TR1 tuple
.
Vous pouvez télécharger le dernier projet de norme, le Final Committee Draft (10,5 Mo, lien PDF).
Merci! Cela le clarifie. Merci pour le lien aussi. –