阅读背景:

为什么' X X;x();“允许”,当“x”定义到函数指针的转换时,而不是定义到函数指针的转换时?

来源:互联网 
void f(int){}
typedef void (*f_ptr)(int);

struct Functor{
  void operator()(int){}
};

struct X{
  operator f_ptr(){ return f; }
};

struct Y{
  operator Functor(){ return Functor(); }
};

int main(){
  X x; Y y;
  x(5); // works ?!
  y(5); // doesn't ?!
}
void f(int){}
typedef void (*f_ptr)(int);

stru



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: