Die Standardinitialisierung, die durchgeführt wird, wenn kein expliziter Initialisierer angegeben ist, wird durch den C-Sprachstandard für alle Objekte ohne einen garantiert expliziter Initialisierer, einschließlich Instanzen von std::array
Es ist jedoch wichtig zu beachten, dass die Standardinitialisierung keine Auswirkungen auf Nicht-Klassen- und Nicht-Array-Typen hat und deren Wert unbestimmt bleibt (§8.5/6) . Ein standardmäßig initialisiertes Array dieser Typen hat beispielsweise unbestimmte Werte:
<code class="cpp">int plain_int; int c_style_array[13]; std::array<int, 13> cxx_style_array;</code>
Um alle Elemente explizit auf T{} zu initialisieren, verwenden Sie die Wertinitialisierung (8.5/7):
<code class="cpp">int plain_int{}; int c_style_array[13]{}; std::array<int, 13> cxx_style_array{};</code>
Das obige ist der detaillierte Inhalt vonWie wird die Standardinitialisierung für „std::array' in C 11 gehandhabt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!