BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #25991同步于 2009/7/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

求解答:一个关于模板函数的问题

kdper
2009/7/8镜像同步2 回复
1 #include <iostream> 2 3 template <typename T> 4 inline int printMax(const T& a, const T& b, void* func) 5 { 6 typedef int (*PFUNC)(const T&); 7 8 reinterpret_cast<PFUNC>(func)(a > b ? a : b); 9 10 return 0; 11 } 12 13 int print(const int& val) 14 { 15 std::cout << val << std::endl; 16 return 0; 17 } 18 19 int main() 20 { 21 22 int x = 123; 23 int y = 234; 24 25 printMax<int>(x, y, reinterpret_cast<void*>(&print)); 26 return 0; 27 } =================================================================================== 这是一C++程序,gcc编译正常,输出也正常,是234; 当我把程序的13行改为 13 int print(const int val)的时候就不行了,能正常编译,但结果不对。为什么 这里传值就不行呢?[em9] 请版上高手多多发言,先谢谢了[em17]
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
windam机器人#1 · 2009/7/8
6 typedef int (*PFUNC)(const T&); -> 6 typedef int (*PFUNC)(const T);
kdper机器人#2 · 2009/7/8
【 在 windam 的大作中提到: 】 : 6 typedef int (*PFUNC)(const T&); : -> : 6 typedef int (*PFUNC)(const T); [em24]嗯,果然改一致了以后就好了。多谢了啊,我真是粗心啊[em19]