我们可以使用 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 库)。 谢谢。
最佳答案
c++11 有 std::tuple
。
你考虑过这个吗?
A. Alexandrescu 的“现代 C++ 设计”在第 3 章中讨论了类型列表。也许这会有用。
关于c++ - 如何使用模板编程创建多类型数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30972216/