Rumah > Artikel > pembangunan bahagian belakang > Mengapa GCC 4.6.1 Bergelut dengan Senarai Permulaan untuk std::array?
Adalah mungkin untuk mencipta std::array menggunakan senarai permulaan dalam beberapa cara. Walau bagaimanapun, GCC 4.6.1 mungkin menghadapi ralat semasa mencuba ini.
Sintaks untuk mencipta std::array menggunakan senarai permulaan ialah:
<code class="cpp">std::array<T, size> array = { { value1, value2, ..., valueN } };</code>
dengan T ialah jenis elemen tatasusunan, saiz ialah saiz tatasusunan dan nilai1 hingga nilaiN ialah nilai awal tatasusunan.
std::array ialah struct agregat, yang membenarkannya untuk dimulakan secara agregat. Untuk mengagregatkan-memulakan tatasusunan di dalam struct, gunakan set tambahan pendakap kerinting:
<code class="cpp">std::array<std::string, 2> strings = {{ "a", "b" }};</code>
Sintaks ini mengelakkan pembina yang mengambil senarai pemula, yang mungkin menyebabkan masalah dalam GCC 4.6.1.
Piawaian C 11 mencadangkan bahawa pendakap kerinting tambahan boleh disingkirkan dalam permulaan agregat. Oleh itu, ketidakupayaan GCC 4.6.1 untuk menyusun senarai permulaan untuk std::array tanpa pendakap tambahan berkemungkinan merupakan pepijat pengkompil.
Atas ialah kandungan terperinci Mengapa GCC 4.6.1 Bergelut dengan Senarai Permulaan untuk std::array?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!