【发布时间】:2020-07-15 10:01:40
【问题描述】:
以下网页有一个可变参数数据结构(元组)link 的示例。我对以下代码有疑问,据称该代码会生成以下类层次结构。我的问题是,层次结构是如何产生的?我没有看到新的struct type<Ts...> 是在哪里生成的?谢谢
template <class... Ts> struct tuple {};
template <class T, class... Ts>
struct tuple<T, Ts...> : tuple<Ts...> {
tuple(T t, Ts... ts) : tuple<Ts...>(ts...), tail(t) {}
T tail;
};
类层次结构:
tuple<double, uint64_t, const char*> t1(12.2, 42, "big");
struct tuple<double, uint64_t, const char*> : tuple<uint64_t, const char*> {
double tail;
}
struct tuple<uint64_t, const char*> : tuple<const char*> {
uint64_t tail;
}
struct tuple<const char*> : tuple {
const char* tail;
}
struct tuple {
}
【问题讨论】: