【发布时间】:2019-02-14 17:51:32
【问题描述】:
我不明白为什么这不起作用:
auto a = (int[]){1, 2, 3, 4, 5};
> error: taking address of temporary array
我知道数组左值在转换为右值时会衰减为指针,但这里的数组已经是右值(实际上是纯右值),因此不需要衰减。我本来希望a 被推导并初始化为int[5]。为什么要取临时地址?
【问题讨论】:
-
我正在寻找答案,但是。 This 可能是相关的,因为 auto 无法做到这一点。
-
这个语法是ill-formed。
标签: c++ arrays temporary-objects