Types>
void Foo(const T& arg0, const Types&... args);
std::tuple就是借助Variadic Templates实现的, tuple的模板参数是不断递归进行了继承从而初始化的...也可用模板函数get(t)来直接取得tuple的元素, 这里index是所需的序号, t是目标tuple
在Variadic Templates还没有的时候, tuple是由大量嵌套的define...这条非常重要, 右值属性只在返回值等赋值号右边的特殊情况下会表现出来, 右值引用的声明是等号的左边因此实际上是左值....这个forward的STL源码中就是完美转发std::forward, 其真正样子如下....但是要注意VS的编译器尽管早就支持了新版本的C++但是由于设计上的问题, 直到今日这个值的定义默认依然是199711, 不过新版本的VS允许用户自己改变这个值了.