函数return一个数组

Function return an array

我知道一个函数不能return一个数组,但是这个函数声明

auto fun(/*...*/) -> int [2]

可以通过编译。为什么!?

确实,函数不能 return 按值的普通数组。

具有这种 return 类型的声明是错误格式的,如果编译器在没有警告的情况下接受它,则编译器不严格符合标准。这可能是一个错误 - 或语言扩展。

看来此错误可在 g++-6.1 中重现。如果您尝试定义 return 数组的函数,您会看到这个搞笑的错误消息:

error: cannot convert 'int [2]' to 'int [2]' in return