我在Boost的版本中读到它是基于的,但我不太确定它在实现时的意义。我知道Boost有他们自己的可变参数模板,但我认为c ++ 0x会使用自己的可变参数模板作为新元组。
答案 0 :(得分:6)
C ++ 0x草案标准中的tuple
使用C ++ 0x可变参数模板。它被声明为(§20.4.1):
template <class... Types> class tuple;
但请注意,TR1语言扩展还包括tuple
,它不使用可变参数模板,因为在编写TR1时没有这样的东西。在TR1中,tuple
被声明为(§6.1):
template <class T1 = unspecified ,
class T2 = unspecified ,
...,
class TM = unspecified > class tuple;
其中M
是一些实现定义的值,应该至少为十。
TR1并非正式的C ++语言的一部分,但许多最近的实现都支持它。如果您的实现尚不支持可变参数模板,则它可能支持TR1 tuple
。
您可以下载最新的标准草案Final Committee Draft(10.5 MB PDF链接)。