nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Warum sind Zuweisungen in C++ lvalues?

Von: Lars Rohwedder (lr@spamt.net) [Profil]
Datum: 22.06.2008 16:42
Message-ID: <g3loboUvliL1@news.in-ulm.de>
Newsgroup: de.comp.lang.iso-c++
Anders als in C, wo das Ergebnis einer Zuweisung ein rvalue ist, ist es
in C++ ein lvalue. ([5.17])

Damit wird folgender Code syntaktisch(!) legal, auch wenn das Ergebnis
natürlich "undefined" ist, da auf x zweimal geschrieben wird, ohne dass
ein Sequence point zwischen den Schreibzugriffen liegt:

(x=3)=4;

Ich frage mich, wieso man in C++ aus Zuweisungen lvalues gemacht hat.
Gibt es irgendeinen sinnvollen Grund dafür und/oder ein
Anwendungsbeispiel, welches diese Änderung ausnutzt und kein "undefined
behavior" besitzt?

Gruß,
Lars R.

[ Auf dieses Posting antworten ]

Antworten