我读过它是基于Boost的版本的,但是我不确定它到底是什么意思。我知道Boost会做自己的可变参数模板,但我假设c++ 0x会将自己的可变参数模板用于新元组。

最佳答案

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是一些实现定义的值,至少应为10。

TR1并不是C++语言的正式组成部分,但许多最新的实现都支持它。如果您的实现尚不支持可变参数模板,则可能支持TR1 tuple

您可以下载最新的标准草案Final Committee Draft(10.5 MB PDF链接)。

09-06 19:43