3

给定这个数组声明和初始化:

std::array<bool, 20> invalid_params{};

我可以假设数组中的所有元素都将始终初始化为 false,还是明确地这样做更好?

4

2 回答 2

5

它保证充满false值。

std::array是一个聚合,因此它没有用户定义的构造函数,因此值初始化它执行零初始化


但是,如果您删除{}(将其转换为默认初始化),则元素将未初始化。

于 2021-05-22T10:59:05.603 回答
0

文档说:“默认初始化可能会导致非 T 类的不确定值”。因此,您似乎不能假设它将被初始化。

于 2021-05-22T11:01:52.937 回答