Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa GCC 4.6.1 Bergelut dengan Senarai Permulaan untuk std::array?

Mengapa GCC 4.6.1 Bergelut dengan Senarai Permulaan untuk std::array?

Patricia Arquette
Patricia Arquetteasal
2024-10-30 06:54:28668semak imbas

Why Does GCC 4.6.1 Struggle with Initialization Lists for std::array?

Menggunakan Senarai Permulaan dengan 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 Permulaan

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.

Permulaan Agregat

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.

Isu Pengkompil

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn