在CSDN上回了一个关于class template convert operator的函数指针的贴子,简单的说是这样的:
class A
{
public:
template<typename T>
operator T*()
{
return new T(100);
}
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:看样子以后得多装些编译器,不能一棵树上吊死。
>>

浙公网安备 33010602011771号