![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Гость_Quester_* |
![]()
Сообщение
#1
|
Гости ![]() |
Добрый вечер, ребята! Объясните пожалуйста, как такое работает:
Из функции "getStr()" вернется временная переменная, скажите пожалуйста, разве можно изменять значение временной переменной? И насколько это корректно?? Спасибо!!! |
|
|
![]() |
lanz |
![]()
Сообщение
#2
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
"работает" это так Не совсем ![]() Вот так не скомпилируется:
мы же rvalue значение присваиваем, а это нельзя вроде? Это верно, но не совсем, т.к. возвращается объект класса std::string, то assignment превращается в вызов member function и prvalue превращается в xvalue. Называется temporary materialization. http://en.cppreference.com/w/cpp/language/...materialization Сообщение отредактировал lanz - 4.6.2017, 1:28 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 7.5.2025, 23:35 |