Size: a a a

2020 August 28

D

Danya in C++ Together 2.0
Roy Mustang
Так что там с оптимизацией для таких случаев?
> int main(void)
Сжечь
источник

D

Danya in C++ Together 2.0
Roy Mustang
Там разве не копирование происходит?
Где?
источник

CC

Cool Cooler in C++ Together 2.0
источник

F

FailsBot in C++ Together 2.0
 ∧_∧
( ・ω・。)つ━☆・*。
⊂  ノ    ・゜+.
しーJ   °。+ *´¨)
         .· ´¸.·*´¨) ¸.·*¨)
          (¸.·´ (¸.·'* ☆
!(https://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Callstacklayout.svg/1280px-Callstacklayout.svg.pngstacklayout.svg/1280px-Callstacklayout.svg.png)проверка
источник

RM

Roy Mustang in C++ Together 2.0
Вызывается path.string() - он создает и возвращает объект, который будет жить временно, затем вызывается foo где внутри происходит копирование строки, так как там по значению принимается. Разве не так?
источник

🦊

🦊fox.cpp in C++ Together 2.0
Roy Mustang
Так что там с оптимизацией для таких случаев?
Смотри, тут согласно стандарту должна быть копия.
источник

🦊

🦊fox.cpp in C++ Together 2.0
Это не случай, где можно copy elision.
источник

D

Danya in C++ Together 2.0
Roy Mustang
Вызывается path.string() - он создает и возвращает объект, который будет жить временно, затем вызывается foo где внутри происходит копирование строки, так как там по значению принимается. Разве не так?
Это не копирование
источник

🦊

🦊fox.cpp in C++ Together 2.0
Поэтому компилятор нихуя не может.
источник

RM

Roy Mustang in C++ Together 2.0
🦊fox.cpp
Это не случай, где можно copy elision.
Я понимаю, copy elision и rvo - это для ретурнов
источник

D

Danya in C++ Together 2.0
🦊fox.cpp
Смотри, тут согласно стандарту должна быть копия.
Там по стандарту будет move конструктор
источник

CC

Cool Cooler in C++ Together 2.0
Ох, я аргументы местами перепутал
источник

🦊

🦊fox.cpp in C++ Together 2.0
Danya
Там по стандарту будет move конструктор
Тоже верно.
источник

RM

Roy Mustang in C++ Together 2.0
Danya
Там по стандарту будет move конструктор
rvalue потому что возвращается?
источник

🦊

🦊fox.cpp in C++ Together 2.0
Поэтому копии быть не должно.
источник

CC

Cool Cooler in C++ Together 2.0
источник

F

FailsBot in C++ Together 2.0
 ∧_∧
( ・ω・。)つ━☆・*。
⊂  ノ    ・゜+.
しーJ   °。+ *´¨)
         .· ´¸.·*´¨) ¸.·*¨)
          (¸.·´ (¸.·'* ☆
!проверка
источник

CC

Cool Cooler in C++ Together 2.0
О, отлично
источник

D

Danya in C++ Together 2.0
Roy Mustang
rvalue потому что возвращается?
Не возвращается r-value, а результат выражения path.string() является r-value expression
источник

RM

Roy Mustang in C++ Together 2.0
Danya
Не возвращается r-value, а результат выражения path.string() является r-value expression
Понятно, спасибо
источник