原始程序中使用struct维护一个全局计算数据结构,所有的计算 kernel 又会单独使用一系列的struct来维护每个 kernel 所需要的参数。这些 kernel 参数结构体在用于保存全局计算的结构体中使用了void *进行管理,然而在迁移到 C++的过程中要求不能使用void *,故问一问各位大佬如何在 C++中优雅且低成本地实现类似void *的功能
在原始的程序中,全局计算结构体存在这样的成员
typedef struct {
// ...
void *something[N];
// ...
} GlobalStruct;
其中这个void *可能对应多个不同的结构体,各个结构体之间相互有不同的成员,例如
typedef struct {
int a;
int b;
short c;
} A;
typedef struct {
int a;
int b;
double d;
} B;
typedef struct {
int a;
int b;
} C;
void kernel_A(A *data);
void kernel_B(B *data);
void kernel_C(C *data);
请问有什么方法可以在 C++程序中实现在上面void *的效果。