胡说八道

学而不思则罔,思而不学则殆

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  132 随笔 :: 0 文章 :: 58 评论 :: 1 Trackbacks
在CSDN上回了一个关于class template convert operator的函数指针的贴子,简单的说是这样的:
 class A
 {
  public:
     template<typename T>
     operator T*()
     {
   return new T(100);
     }

 };

 现在我想获得A::operator int*的函数指针,我该怎么做?

 我用了中间层来完成获得函数指针的操作
 template<typename P,typename T>
 class GetAddress
 {
  typedef T* (P::*point)();
  point m_point;
 public:
  GetAddress()
  {
   m_point=&(P::operator T*);
  }
  point GetPoint()
  {
   return m_point;
  }
 };

 typedef int* (A::*q)();
 q j=reinterpret_cast<q>(GetAddress<A,int>().GetPoint());

 接下来的是如何直接获得这样的函数指针(上面用了间接层)?我没有办法。

 如果你有办法,请告诉我,谢谢了。

 
 <<
 看了csdn上面的
 回复,看来应该是编译器的问题了,可以直接使用&A::operator int*;来获得地址。
 PS:看样子以后得多装些编译器,不能一棵树上吊死。
 >>

posted on 2004-12-29 11:36 胡说八道 阅读(334) 评论(0)  编辑 收藏 所属分类: 自己的想法

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
 
另存  打印