"char(&(...))[2]"的含义是什么意思?

dcm*_*m88 5 c++

我遇到了以下代码:

char (&f(...))[2];

我检查了它的类型(使用typeid和c ++ filt)并获得:

char (&(...)) [2]

但我无法理解这种类型.[2]是让我失望的部分.没有它,我可以在函数定义中复制类型,例如:

char (&f(...))

f与h in的类型相同(至少从typeid + c ++ filt的输出):

char& h(...)

Vla*_*cow 3

它是一个函数声明,具有不同数量的参数,并返回对两个元素的字符数组的引用。

通过使用 typedef 可以更简单地声明它。例如

typedef char char_array[2];

char_array & f( ... );
Run Code Online (Sandbox Code Playgroud)