- 1
- 2
- 3
- 4
- 5
- 6
ostringstream s;
...
- return s.str();
+ return std::move(s.str());
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+5
ostringstream s;
...
- return s.str();
+ return std::move(s.str());
соптимизировано
kurwa 02.07.2016 21:04 # +7
Psionic 02.07.2016 22:24 # +5
gost 02.07.2016 22:54 # +3
guestinho 03.07.2016 00:26 # +3
3_dar 02.07.2016 22:56 # 0
kurwa 02.07.2016 23:16 # +4
Ну и вообще std::move в return практически никогда ничего не оптимизирует - в лучшем случае это no-op, а в худшем еще и RVO ломает (т.е. делает медленнее).
Soul_re@ver 03.07.2016 17:49 # +8
Двойная оптимизация.
Можно расширить на любой уровень оптимизации:
Говорят, что return optimized_return<numeric_limits<size_t>: :max()>(s.str()); выполняется за отрицательное время.
dxd 03.07.2016 21:59 # +2
Soul_re@ver 03.07.2016 22:00 # +2
kurwa 03.07.2016 22:13 # 0
Soul_re@ver 03.07.2016 22:19 # +1
kurwa 03.07.2016 22:41 # 0
Остальное - треш какой-то.
Soul_re@ver 03.07.2016 22:56 # 0
3_dar 03.07.2016 22:56 # 0
guestinho 04.07.2016 23:28 # +1
CHayT 03.07.2016 22:42 # +3