016
07.12.2007, 06:02 Uhr
stephanw
localhorst
|
Schön, irgendwie ist das cool, keine extra Variable zu benötigen.
Vielleicht kann man sich ja darauf beschränken, dass man auf diese Weise Speicherbereiche austauschen kann (byteweise). Das sollte doch für eingebauten Typen sowie PODs funktionieren. Sobald das Kopieren eines Objekts nicht mehr trivial ist, ist das Verhalten undefiniert, also katastrophal. Nicht mehr trivial ist es eben, wenn Zeiger, Referenzzähler usw. im Spiel sind, also in den üblichen Fällen, die einen Kopierkonstruktor, Destruktor und Zuweisungsoperator erfordern oder verbieten.
Für Leute mit Paranoia gibt es ja auch noch "voliatile", vielleicht kann man damit übereifrige Compiler-Optimierungen vermeiden ?
Mein g++ macht das übrigens auch richtig, obwohl std::string schon nicht mehr trivial sein sollte. Von daher -> Glück gehabt
Code: |
$ ./main a = Hallo b = Welt a = Welt b = Hallo
|
-- Reden ist Schweigen und Silber ist Gold. Dieser Post wurde am 07.12.2007 um 06:13 Uhr von stephanw editiert. |