安全地初始化一个std::array的布尔值
鉴于此数组声明和初始化:
std::array<bool, 20> invalid_params{};
我可以假设数组中的所有元素都将始终初始化为 false,还是最好明确地进行初始化?
回答
它保证填充有false值。
std::array是一个聚合,因此它没有用户定义的构造函数,因此值初始化它执行零初始化。
但是如果您删除{}(将其转换为默认初始化),则元素将未初始化。
鉴于此数组声明和初始化:
std::array<bool, 20> invalid_params{};
我可以假设数组中的所有元素都将始终初始化为 false,还是最好明确地进行初始化?
它保证填充有false值。
std::array是一个聚合,因此它没有用户定义的构造函数,因此值初始化它执行零初始化。
但是如果您删除{}(将其转换为默认初始化),则元素将未初始化。