自定义可以存储任意类型任意数量的tuple对象。
/*******************************************
* Name: example.cpp
* Describe: 可变模板参数实例6-递归类
* Author: SSCOCA
* Version: 1.00
* Date: 2018年8月9日
* Other:
*********************************************/
#include <iostream>
using namespace std;
template<typename... Args>class Tuple;//前置声明
template<> class Tuple<>{};//递归终止条件
template<typename Head, typename... Tail>
class Tuple<Head, Tail...>:private Tuple<Tail...>
{
public:
typedef Tuple<Tail...> parent;
Tuple(Head v, Tail...vtail):m_head(v),parent(vtail...){}
Head head(){ return m_head; }
parent& tail(){ return *this; }
private:
Head m_head;
};
void main6(){
Tuple<int, char, float> t(1, 'a', 1.99);
cout << t.head();
cout << t.tail().head();
}