char(&test(...))[2]是什么意思?

Fir*_*his 5 c++

以下声明的含义是什么:

char (& test(...))[2];
Run Code Online (Sandbox Code Playgroud)

我把它粘贴在一个函数体中,然后编译好了.我不知道我能用它做什么,但它通过了编译.

我在这个答案中遇到过类似的东西.

CB *_*ley 3

它是一个函数的声明,该函数采用变量参数列表并返回对 2 数组的引用char

请注意,如果定义这样的函数,则参数无法访问(通过标准方式),因为<cstdarg>宏需要可变参数列表来跟随命名参数。

如果愿意,您可以使用此声明定义一个函数并返回对合适数组的引用。您可以使用任何参数调用它,但要遵守...参数限制,其中包括传递非 POD 类类型会导致未定义行为的限制。

例如

namespace
{
    char samplearray[2];
}

char (& test(...))[2]
{
    return samplearray;
}
Run Code Online (Sandbox Code Playgroud)