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

Safely initializing a std::array of bools

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

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

我可以假设数组中的所有元素总是初始化为 false,还是显式初始化更好?

保证填充 false 个值。

std::array 是一个集合,因此它没有用户定义的构造函数,因此 value-initializing it performs zero-initialization.


但是如果你删除{}(把它变成默认初始化),元素将不会被初始化。

文档说:“默认初始化可能会导致非 class T 的不确定值”。所以,看来你不能假设它会被初始化。