我们可以使用void *或void **创建一个多类型数组, 举个例子 - (在" C编程中也用C ++编程")
#define ARRAY_LENGTH 47
void *ptr;
void **arr = malloc(sizeof(void *) * ARRAY_LENGTH);
for (int i = 0; i < ARRAY_LENGTH; i++) {
arr[i] = ptr;
}
free(arr);
因此,我们可以将任何指针类型转换为void *类型并在void **中存储地址,并将其从数组中转换回来以适当地使用它们。 同样明智的是,在现代C ++中,我们是否有任何优雅的方法来创建这样一个数组,用于使用模板编程存储多类型(指针)? 请提供简单的示例(不使用boost库)。 谢谢。
答案 0 :(得分:0)
c ++ 11有std::tuple
。
你考虑过这个吗?
A. Alexandrescu撰写的“现代C ++设计”讨论了第3章中的类型列表。也许这会很有用。