我有由从 Base 结构派生的 int 模板化的结构。
struct Base { int i; double d; };
template< int N > struct Derv : base { static const int mN = N; };
我需要创建一个 Derv< N > 数组,其中 N 可以针对该数组中的每个结构而变化。我知道 C/C++ 不允许使用不同类型的对象数组,但有没有办法解决这个问题?我正在考虑以某种方式分离类型信息(诸如指向 Base struct 的指针或 union 的使用之类的提示在我脑海中浮现,但是所有这些我不知道如何存储每个数组元素的类型信息以供在编译期间使用)。可以看到,每个 Derv<N> 的内存模式都是一样的。
我需要稍后在我的代码中访问每个数组元素的类型以进行模板特化。这一切的总体目标是拥有一个编译时调度机制,而无需在代码中的某处进行运行时“类型切换”。