以下声明的含义是什么:
char (& test(...))[2];
Run Code Online (Sandbox Code Playgroud)
我把它粘贴在一个函数体中,然后编译好了.我不知道我能用它做什么,但它通过了编译.
我在这个答案中遇到过类似的东西.
它是一个函数的声明,该函数采用变量参数列表并返回对 2 数组的引用char
。
请注意,如果定义这样的函数,则参数无法访问(通过标准方式),因为<cstdarg>
宏需要可变参数列表来跟随命名参数。
如果愿意,您可以使用此声明定义一个函数并返回对合适数组的引用。您可以使用任何参数调用它,但要遵守...
参数限制,其中包括传递非 POD 类类型会导致未定义行为的限制。
例如
namespace
{
char samplearray[2];
}
char (& test(...))[2]
{
return samplearray;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
337 次 |
最近记录: |