- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在下面的例子中
#include <iostream>
int a[][2] = {{1, 4}, {2, 6}};
int b[][3] = a; // error: array initializer must be an initializer list
为什么我们不能以任何方式初始化数组而不是使用initializer-list
?我试图在 N4296::8.5.4 [dcl.init.list]
中找到它,但似乎没有任何合适的东西。
最佳答案
这个问题有点倒退,错误消息也是如此。 总是您不能从另一个数组的名称初始化一个数组。初始化列表与此无关。
[C++11: 8.5/16]:
The semantics of initializers are as follows. The destination type is the type of the object or reference being initialized and the source type is the type of the initializer expression. If the initializer is not a single (possibly parenthesized) expression, the source type is not defined.
- If the initializer is a (non-parenthesized) braced-init-list, the object or reference is list-initialized (8.5.4).
- If the destination type is a reference type, see 8.5.3.
- If the destination type is an array of characters, an array of
char16_t
, an array ofchar32_t
, or an array ofwchar_t
, and the initializer is a string literal, see 8.5.2.- If the initializer is
()
, the object is value-initialized.- Otherwise, if the destination type is an array, the program is ill-formed.
- [..]
关于c++ - 为什么我们只能用初始化列表初始化一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27752546/
有一条(相对)众所周知的 Perl 公理:“只有 Perl 可以解析 Perl”。我想知道 Perl 6 是否仍然如此? 扩大讨论...考虑到 PyPy 最近的更新,我想到了这个问题。 Perl 独特
这是设置。在上一个问题中,我发现我可以通过子组件中的状态传递对象属性,然后使用 componentDidUpdate 获取该对象属性。在这种情况下,状态和属性都称为到达。 这是基本代码... expo
我运行的是 10.5.2 社区版。我已经标记了 源/主要/资源 作为源目录。我可以右键单击并“编译”某些文件,据我所知,这意味着 IDE 将文件复制到与发送类文件的“com.mydomain.pack
我是一名优秀的程序员,十分优秀!