我遇到了以下代码:
char (&f(...))[2];
我检查了它的类型(使用typeid和c ++ filt)并获得:
char (&(...)) [2]
但我无法理解这种类型.[2]是让我失望的部分.没有它,我可以在函数定义中复制类型,例如:
char (&f(...))
f与h in的类型相同(至少从typeid + c ++ filt的输出):
char& h(...)
它是一个函数声明,具有不同数量的参数,并返回对两个元素的字符数组的引用。
通过使用 typedef 可以更简单地声明它。例如
typedef char char_array[2];
char_array & f( ... );
Run Code Online (Sandbox Code Playgroud)