我不知道为什么要称它为“递归继承”,class tuple<Head,Tail...> 与 class tuple<Tail...> 是两个不同的“类”类型
1、递归继承,是编译器看到了上面这个继承代码,识别出是递归继承,然后就生成了所有的类吗?
编译器不知道什么叫“递归”,自然也就识别不出是不是递归。编译器看到 class tuple<a,b,c> 继承于 class tuple<b,c>,于是就去实例化 class tuple<b,c>,实例化 class tuple<b,c> 时又看到它继承于 class tuple<c> 于是就去实例化 class tuple<c>,……,一直到 class tuple<>
2、递归继承是编译的时候生成所有类还是运行的时候才生成?
C++是静态语言,不可能运行时生成任何类型。