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++
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
- Stefan Ram (22.06.2008 19:19)
- Lars (22.06.2008 20:16)
- Stefan Reuther (22.06.2008 22:44)
- James (23.06.2008 10:02)
- Thomas Richter (23.06.2008 08:36)
