首页  >  文章  >  后端开发  >  C 11 中如何处理“std::array”的默认初始化?

C 11 中如何处理“std::array”的默认初始化?

Susan Sarandon
Susan Sarandon原创
2024-10-30 22:14:30245浏览

How is Default Initialization Handled for  `std::array` in C  11?

C 11 的 std::array 的默认初始化

未指定显式初始化程序时执行的默认初始化由 C 语言标准保证,适用于所有没有显式初始化程序,包括 std::array 的实例和 T[N] (§8.5/11)。

但是,需要注意的是,默认初始化对非类、非数组类型没有影响,导致它们的值不确定 (§8.5/6) 。例如,此类类型的默认初始化数组将具有不确定的值:

<code class="cpp">int plain_int;
int c_style_array[13];
std::array<int, 13> cxx_style_array;</code>

要将所有元素显式初始化为 T{},请使用值初始化 (8.5/7):

<code class="cpp">int plain_int{};
int c_style_array[13]{};
std::array<int, 13> cxx_style_array{};</code>

以上是C 11 中如何处理“std::array”的默认初始化?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn