R-Value References
-
Hey Leute,
gucke mir gerade folgende Seite an
http://www.proggen.org/forum/viewtopic.php?f=21&t=4522
und hierbei wundert mich eine Sache und zwar soll der Hauptnutzen der R-Value References sein, dass man Referenzen auf temporäre Objekte anlegen kann, was mit den herkömmlichen Referenzen nicht möglich sein soll, dafür wird folgendes Beispiel präsentiert:
A& a_lr = A(); // Fehler! "cannot convert from 'A' to 'A &' A non-const reference may only be bound to an lvalue" A&& a_rr = A(); // Geht klar.Was mich wundert ist, dass der Microsoft Compiler auch den ersten Fall problemlos kompiliert, d.h. es ist mit diesem Möglich eine herkömmliche Referenz auf ein temporäres Objekt anzulegen.
Weiß evtl. jemand von euch, warum das hier möglich ist und was demnach der Nutzen der R-Value References sein sollte?
Gruß

-
Darin beschreibt er es irgendwo. :p
-
Gugelmoser schrieb:
Darin beschreibt er es irgendwo. :p
ca. Minute 11
-
MSVC ist halt doof.
-
Das ist eine Compilererweiterung, normalerweise kriegst du mindestens eine Warnung dazu.
-
314159265358979 schrieb:
MSVC ist halt doof.

-
Danke für euere Hilfen, der GCC spuckt hier wie erwartet eine Fehlermeldung für den Fehler-Fall, jedoch spuckt er für den "Geht klar"-Fall auch eine und zwar:
expected unqualified-id before ‘&&’ token
Wisst ihr was da genau das Problem ist?
Gruß

-
Hast du ihm das Compiler-Flag -std=c++0x mitgegeben?
z.B.
g++ -std=c++0x test.cpp -o testGruß,
XSpille
-
Danke, das war das Problem
Bin davon ausgegangen, dass der Compiler per default den neusten Standard unterstützt, was offensichtlich nicht der Fall ist.Vielen Dank
