Bel*_*loc 0 c++ language-lawyer c++11
第§8.3.5/ 8段(强调我的):
如果参数的类型包括"指向T的未知边界的数组的指针"或"对T的未知边界的数组的引用"形式的类型,则该程序是不正确的.函数不应具有类型数组或函数的返回类型,尽管它们可能具有类型指针的返回类型或对此类事物的引用.虽然可以有函数指针数组,但是不应该有函数数组.
§8.5.3/ 5的要点(5.2.1)和(5.2.1.1)(重点是我的):
(5.2.1) - 如果是初始化表达式
(5.2.1.1) - 是xvalue(但不是位字段),类prvalue, 数组prvalue或函数lvalue,"cv1 T1"与"cv2 T2"引用兼容,或者
如果我对我的假设(在标题中)错了,我会很感激有一个产生prvalue数组的例子.
int main() {
using Arr = int[];
auto&& r = Arr{1, 2, 3, 4, 5};
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这里r
绑定到数组类型的prvalue.