Ostatnio uczę się nowych funkcji C++ 11. Jednak nie w pełni rozumiem jedną rzecz o wartościach r.Gdzie wartości r przechowywane są w C++?
Rozważmy następujący kod:
string getText()
{
return "Fabricati diem";
}
string newText = getText();
Wezwanie do getText()
tworzy wartość R, który jest kopiowany do newText
zmiennej. Ale gdzie dokładnie jest przechowywana ta wartość? A co dzieje się z tym po skopiowaniu?
W rzeczywistości nie jest kopiowany z powodu [optymalizacji wartości zwracanej] (http://en.wikipedia.org/wiki/Return_value_optimization) – CoryKramer
@Cyber Nie można go przenieść * i * RVOd. Jest jeden lub drugi, najprawdopodobniej ten drugi. – juanchopanza
Dobry połów, masz rację. Zmieniłem mój komentarz. – CoryKramer