如何解决安全地初始化一个 std::array 的布尔值
鉴于此数组声明和初始化:
std::array<bool,20> invalid_params{};
我可以假设数组中的所有元素总是被初始化为 false,还是明确地初始化更好?
解决方法
保证用 false
值填充。
std::array
是一个聚合,因此它没有用户定义的构造函数,因此 value-initializing 它执行 zero-initialization。
但是如果您删除 {}
(将其转换为默认初始化),元素将未初始化。
文档说:“默认初始化可能会导致非类 T 的值不确定”。所以,看来你不能假设它会被初始化。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。