Types>
void Foo(const T& arg0, const Types&... args);
std::tuple就是借助Variadic Templates实现的, tuple的模板参数是不断递归进行了继承从而初始化的...也可用模板函数get(t)来直接取得tuple的元素, 这里index是所需的序号, t是目标tuple
在Variadic Templates还没有的时候, tuple是由大量嵌套的define...接受一个默认为true的bool参数, 当参数为true时会关闭编译器对这个函数生成时关于异常的栈准备工作, 从而提高函数的执行效率....由于编译器无法在模板中推导模板参数的正确形式, 也就是模板参数的默认值在编译阶段是无法展现的....最基础的lambda展开后形如下面的样子:
// 如果我们写出下面的lambda, 会被展开为下面的形式
[x](int k){ std::cout<<k; };
// 展开的函数对象是匿名的, 其名称由编译器生成