Heim > Backend-Entwicklung > C++ > Warum hat GCC 4.6.1 Probleme mit Initialisierungslisten für std::array?

Warum hat GCC 4.6.1 Probleme mit Initialisierungslisten für std::array?

Patricia Arquette
Freigeben: 2024-10-30 06:54:28
Original
671 Leute haben es durchsucht

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

Verwenden von Initialisierungslisten mit std::array

Es ist auf verschiedene Weise möglich, ein std::array mithilfe von Initialisierungslisten zu erstellen. Bei GCC 4.6.1 können jedoch bei diesem Versuch Fehler auftreten.

Initialisierungssyntax

Die Syntax zum Erstellen eines std::array mithilfe von Initialisierungslisten lautet:

<code class="cpp">std::array<T, size> array = { { value1, value2, ..., valueN } };</code>
Nach dem Login kopieren

Dabei ist T der Elementtyp des Arrays, Größe die Größe des Arrays und Wert1 bis WertN die Anfangswerte des Arrays.

Aggregatinitialisierung

std::array ist eine Aggregatstruktur, die dies ermöglicht aggregiert initialisiert werden. Um das Array innerhalb der Struktur aggregiert zu initialisieren, verwenden Sie einen zusätzlichen Satz geschweifter Klammern:

<code class="cpp">std::array<std::string, 2> strings = {{ "a", "b" }};</code>
Nach dem Login kopieren

Diese Syntax vermeidet den Konstruktor, der eine Initialisierungsliste akzeptiert, was in GCC 4.6.1 zu Problemen führen kann.

Compiler-Problem

Der C 11-Standard schlägt vor, dass die zusätzlichen geschweiften Klammern bei der Aggregatinitialisierung weggelassen werden können. Daher ist die Unfähigkeit von GCC 4.6.1, Initialisierungslisten für std::array ohne die zusätzlichen Klammern zu kompilieren, wahrscheinlich ein Compilerfehler.

Das obige ist der detaillierte Inhalt vonWarum hat GCC 4.6.1 Probleme mit Initialisierungslisten für std::array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage