我在这里阅读了 litb 关于 SFINAE 的问题,我想知道他的代码到底在声明什么。下面是一个更简单(没有模板)的示例:
int (&a())[2];
那究竟是在宣布什么?&的作用是什么?为了增加我的困惑,如果我改为声明以下内容
int b()[2];
我收到一个关于声明返回数组的函数的错误,而第一行没有这样的错误(因此,人们会认为第一个声明不是函数)。但是,如果我尝试分配一个
a = a;
我收到一条错误消息,说我正在尝试将函数分配给...所以现在它是一个函数。这究竟是什么东西?