Rückgabe von Referenz auf lokale Variable
-
Ist das Verhalten definiert, wenn man eine konstante Referenz auf eine lokale Variable zurückgibt und diese nur als konstante Referenz weiter verwendet?
-
...
-
Swordfish schrieb:
btw: Es gibt keine konstanten Referenzen. Eventuell meinst du
T const &?Und wie heißt das dann ausgesprochen?
Und ist es definiert, wenn man eine lokale Variable T zurückgibt und nur als T const & hält?
-
1. http://www.c-plusplus.net/forum/p2262556#2262556
2. Ja, ist es.
-
const ref schrieb:
Und ist es definiert, wenn man eine lokale Variable T zurückgibt und nur als T const & hält?
Sofern die Variable lokal ist, ja. Dann wird die Lebensdauer des referenzierten Ausdrucks verlängert. Für Membervariablen oder Non-Const-Referenzen gilt diese Regel nicht.
int function(); // ok int a = function(); const int& b = function(); // nicht ok int& c = function();Würde ich aber so nicht machen, das verwirrt nur. Die Regel existiert vor allem für Parameter, damit man bei
const T&auch RValues übergeben kann.