安全地初始化一个 std::array 的布尔值

ana*_*ciu 3 c++ stdarray zero-initialization default-initialization

鉴于此数组声明和初始化:

std::array<bool, 20> invalid_params{};
Run Code Online (Sandbox Code Playgroud)

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

Hol*_*Cat 5

它保证填充有false值。

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


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