该tuple在的C++ 0x草案标准采用的C++ 0x可变参数模板.它被声明为(§20.4.1):
template <class... Types> class tuple;
Run Code Online (Sandbox Code Playgroud)
但请注意,TR1语言扩展还包括tuple,它不使用可变参数模板,因为在编写TR1时没有这样的东西.在TR1中,tuple声明为(§6.1):
template <class T1 = unspecified ,
class T2 = unspecified ,
...,
class TM = unspecified > class tuple;
Run Code Online (Sandbox Code Playgroud)
其中M一些实现定义的值应该至少为十.
TR1不是正式的C++语言的一部分,但许多最近的实现支持它.如果您的实现尚不支持可变参数模板,则它可能支持TR1 tuple.
您可以下载最新的标准草案,最终委员会草案(10.5 MB PDF链接).