C++ 如何使用模板编程创建多类型数组

C++ 如何使用模板编程创建多类型数组,c++,arrays,c++11,visual-c++,c++14,C++,Arrays,C++11,Visual C++,C++14,我们可以使用void*或void**创建多类型数组, 例如— (C编程中也有C++编程) #定义数组长度47 无效*ptr; void**arr=malloc(sizeof(void*)*数组长度); for(int i=0;i

我们可以使用void*或void**创建多类型数组, 例如— (C编程中也有C++编程)

#定义数组长度47
无效*ptr;
void**arr=malloc(sizeof(void*)*数组长度);
for(int i=0;i
因此,我们可以将任何指针类型强制转换为void*类型,并将地址存储在void**中,然后将其从数组中强制转换回来,以适当地使用它们。 与明智一样,在现代C++中,我们是否有任何优雅的方法来创建这样一个数组,用于使用模板编程存储多类型(指针)? 请提供简单的示例(不使用boost库)。
谢谢。

c++11具有
std::tuple

你考虑过这个吗


A. Alexandrescu的《现代C++设计》第3章讨论了类型化。也许这会有用。

c++11具有
std::tuple

你考虑过这个吗


A. Alexandrescu的《现代C++设计》第3章讨论了类型化。也许这会有用。

boost::variant
<代码>增压::是否有
boost::type_erasure::any
boost::any
合适。没有boost?如果我们想做自己的实现?如果它已经在高质量的库中实现了,您为什么要推出自己的呢?或者这恰好是一个学习练习?是的,我真的很想学习如何使用模板类型推断来实现这些东西<代码>增压::是否有
boost::type_erasure::any
boost::any
合适。没有boost?如果我们想做自己的实现?如果它已经在高质量的库中实现了,您为什么要推出自己的呢?或者这是一个学习练习吗?是的,我真的很想知道这些东西是如何用模板类型推断实现的/
    #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);