我想使用函数指针通过其指针引用模板函数,函数指针在
这样的结构中可用header-video
例如:
typedef struct arithmeticfunc {
string funcName;
int (*funPtr)(int,int);
};
现在我需要使用模板函数而不是普通的静态函数。
请告诉我,我正在做正确的方法。
答案 0 :(得分:0)
如果我理解您的问题,您希望struct
和函数是模板吗?
template <typename T>
struct arithmeticfunc
{
std::string funcName;
T (*funPtr)(T, T);
};
template <typename T>
T add(T a, T b)
{
return a+b;
}
template <typename T>
T sub(T a, T b)
{
return a-b;
}
然后你可以按如下方式使用它们
int main()
{
arithmeticfunc<int> func[2] = { {"ADDITION", &add},
{"SUBTRACT", &sub} };
for(int i = 0; i < 2; i++)
{
std::cout << "Result of Function : "
<< func[i].funcName
<< " is "
<< func[i].funPtr(2,1)
<< std::endl;
}
}
请注意,如果您使用模板,则无法再使用%d
格式代码,因为T
的类型可能不是整数,可能是double
等