I only add std::move() manually to the TLE code, and it got AC.
But why ????? Shouldn't the Compiler add std::move() automatically ??????
# | User | Rating |
---|---|---|
1 | tourist | 3856 |
2 | jiangly | 3747 |
3 | orzdevinwang | 3706 |
4 | jqdai0815 | 3682 |
5 | ksun48 | 3591 |
6 | gamegame | 3477 |
7 | Benq | 3468 |
8 | Radewoosh | 3462 |
9 | ecnerwala | 3451 |
10 | heuristica | 3431 |
# | User | Contrib. |
---|---|---|
1 | cry | 167 |
2 | -is-this-fft- | 162 |
3 | Dominater069 | 160 |
4 | Um_nik | 158 |
5 | atcoder_official | 156 |
6 | djm03178 | 153 |
7 | adamant | 152 |
8 | luogu_official | 149 |
9 | awoo | 147 |
10 | TheScrasse | 146 |
I only add std::move() manually to the TLE code, and it got AC.
But why ????? Shouldn't the Compiler add std::move() automatically ??????
Name |
---|
Auto comment: topic has been updated by Meguhine (previous revision, new revision, compare).
That kind of optimization usually works if you return named object, not braced ctor.
Move is not added automatically unless you return something directly. If it is part of pair/tuple/array — no dice. Now imagine there was a c++ grade performing language with no hidden coppies...