Vuol C ++ 0x tuple utilizzare i nuovi modelli variadic o implementazione tuple macro-cato di Boost?
Domanda
ho letto che era base della versione di Boost, ma non ero abbastanza sicuro di quello che intendeva quando è venuto giù alla realizzazione. So Boost fa il loro proprio modello variadic, ma vorrei assumere C ++ 0x sarebbe utilizzare i propri modelli variadic per la nuova tupla.
Soluzione
Il tuple
in C ++ 0x progetto utilizzi standard C ++ 0x variadic modelli. Si è dichiarato come (§20.4.1):
template <class... Types> class tuple;
Si noti, tuttavia, che le estensioni del linguaggio TR1 includono anche tuple
, che non fa uso di modelli variadic, dal momento che non vi era nulla di simile quando TR1 è stato scritto. In TR1, tuple
è dichiarata come (§6.1):
template <class T1 = unspecified ,
class T2 = unspecified ,
...,
class TM = unspecified > class tuple;
dove M
è un valore definito dall'implementazione che dovrebbe essere di almeno dieci anni.
TR1 non è formalmente parte del ++ linguaggio C, ma molte implementazioni recenti lo supportano. Se si dispone di un'implementazione che non supporta ancora i modelli variadic, potrebbe sostenere il tuple
TR1.
E 'possibile scaricare l'ultima progetto di norma, il (link PDF 10,5 MB) Comitato finale Progetto .