Здравствуйте, гость ( Вход | Регистрация )
| Гость_Quester_* |
2.6.2017, 20:37
Сообщение
#1
|
|
Гости |
Добрый вечер, ребята! Объясните пожалуйста, как такое работает:
Из функции "getStr()" вернется временная переменная, скажите пожалуйста, разве можно изменять значение временной переменной? И насколько это корректно?? Спасибо!!! |
|
|
|
![]() |
|
lanz |
31.8.2017, 10:34
Сообщение
#2
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8
|
Цитата А ты опустил байндинг аргумента оператора= this? он конвертируется в xvalue до байндинга, так что это тут не причем "world"? а что необычного в байндинге const char* ? Превращение prvalue в xvalue имеет непосредственное отношение к сути вопроса и объясняет механизм, поэтому я его и описал, байндинг аргументов не имеет к ней отношения. Если считаете обратное, разверните свою точку зрения более подробно. Алексей1153 все в целом верно описал, кроме того что из функции возвращается не временное значение, а prvalue, о чем спрашивал ТС Цитата мы же rvalue значение присваиваем, а это нельзя вроде? Поэтому я и посчитал возможным рассказать о механизме temporary materialization. Цитата хех, нашли, о чём спорить Link |
|
|
|
Quester Изменение значения возвращаемого из функции 2.6.2017, 20:37
Iron Bug в том виде, как ты написал, это не работает.
если ... 2.6.2017, 21:34
Quester Цитата(Iron Bug @ 2.6.2017, 21:34) в том ... 3.6.2017, 13:07
Алексей1153 "работает" это так
1) getStr() возвраща... 3.6.2017, 20:22
lanz Цитата(Алексей1153 @ 3.6.2017, 20:22) ... 4.6.2017, 1:26
Гест Цитата(lanz @ 4.6.2017, 1:26) Не совсем
Ч... 29.8.2017, 15:20
lanz ЦитатаЧто он описал неверно?
Пропустил превращение... 30.8.2017, 16:21
Гест Цитата(lanz @ 30.8.2017, 16:21) ЦитатаЧто... 30.8.2017, 19:40
Алексей1153 хех, нашли, о чём спорить 31.8.2017, 7:34![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 15.12.2025, 4:24 |