在 C++ 中是否可以创建某种通用函数指针,该指针指向任何返回指向某种类型的指针且不带参数的函数?
例如,一种类型的指针可以指向以下两个:
int* funcInt(){
int* i = new int;
*i = 5;
return i;
}
char* funcChar(){
char* c = new char;
*c = 'a';
return c;
}
显然以下是有效的:
int* (*funcPointerA)() = funcInt;
char* (*funcPointerB)() = funcChar;
但是是否可以执行以下操作(此时会出现编译错误):
void* (*funcPointerC)() = funcInt;
void* (*funcPointerD)() = funcChar;
目前上面的代码给出了以下错误:
error: invalid conversion from 'int* (*)()' to 'void* (*)()'
error: invalid conversion from 'char* (*)()' to 'void* (*)()'
有没有办法将 funcPointerA 和 B 转换为 C 和 D?
这样就可以将两种类型的函数的指针(以及其他返回指向某种类型的指针但不带参数的函数)的指针一起存储在一个向量中。