Heim > Backend-Entwicklung > C++ > Warum sind Initialisierungslisten in C-Binäroperator-Argumenten eingeschränkt?

Warum sind Initialisierungslisten in C-Binäroperator-Argumenten eingeschränkt?

Mary-Kate Olsen
Freigeben: 2024-12-12 16:12:14
Original
578 Leute haben es durchsucht

Why Are Initializer Lists Restricted in C   Binary Operator Arguments?

Initialisierungslisten in Operatorargumenten

Die Verwendung von Initialisierungslisten auf der rechten Seite (RHS) von Operatoren, eine Funktion, die in fehlt C 11 wirft Fragen zur Begründung dieser Einschränkung auf.

Der C-Standard verbietet die direkte Verwendung von Initialisierungslisten auf der RHS von binären Operatoren wie „“, „*“ oder „<<“. Dies liegt daran, dass Initialisierungslisten nicht als Ausdrücke gemäß §5 des Standards gelten, der ihre Verwendung in Funktionen und binären Operatorargumenten verbietet.

Um die Verwendung von Initialisierungslisten zu erleichtern, führt der Standard Ausnahmen ein. Für binäre Operatoren gibt es jedoch keine solche Ausnahme, sodass Initialisierungslisten auf beiden Seiten eingeschränkt sind.

Die Entscheidung hinter dieser Einschränkung wird in N2215 von Stroustrup und Dos Reis (2007) erläutert. Das Zulassen von Initialisierungslisten als linker Operand würde aufgrund der Verwendung von geschweiften Klammern sowohl für Initialisierungslisten als auch für Blöcke zu Analysekonflikten führen.

Darüber hinaus wurde erwogen, Initialisierungslisten nur auf der rechten Seite und nicht auf beiden Seiten zuzulassen eine übermäßige Inkonsistenz erzeugen. Daher sind Initialisierungslisten in bestimmten Kontexten zulässig, z. B. bei Funktionsargumenten, Indizes und Zuweisungen, jedoch nicht im allgemeinen Fall von binären Operatorargumenten.

Das obige ist der detaillierte Inhalt vonWarum sind Initialisierungslisten in C-Binäroperator-Argumenten eingeschränkt?. 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