Gubię się w kwestii referencji prawostronnych i std::move. Kiedy funkcja może zwracać referencję prawostronną i ma to sens? I jakie obiekty mogą ją przechowywać?
https://ideone.com/DENrPW
http://cpp.sh/27tyd
Mam taki kod, który na każdym kompilatorze działa inaczej. Połowa to undefined behaviour. I teraz na przykład dlaczego przy wywołaniu z 32 linii obiekt rr&& wg gcc 6.3 na ideone nie złapie wartości z return jeśli użyję std::move, ale już bez move zadziała normalnie? Na visualu
https://ideone.com/DENrPW
http://cpp.sh/27tyd
Mam taki kod, który na każdym kompilatorze działa inaczej. Połowa to undefined behaviour. I teraz na przykład dlaczego przy wywołaniu z 32 linii obiekt rr&& wg gcc 6.3 na ideone nie złapie wartości z return jeśli użyję std::move, ale już bez move zadziała normalnie? Na visualu






















A może dobrze zrozumiałem, że jeśli zrobi się funkcję z tym... "przedrostkiem" (?) ... to kiedy zostanie wywołana w funkcji main() zostanie skopiowana do niej i wystartuje, a nie inicjowana w miejscu utworzenia (czyli gdzieś wcześniej/później/w innym pliku)?
#naukaprogramowania #programowanie #it #programista15k #cpp