|
|
1
3
here are 与代码的结果略有不同。如评论中所述,编译器及其设置非常重要。特别是,您可能会注意到,所有情况下都有类似的运行时,但第一种情况除外,它的速度大约是第二种情况的两倍。
1) 呼叫时
4) 呼叫时
5) 我假设您的测试旨在证明当需要在调用链的底部制作参数副本时,完美转发的优势(因此创建
这与我们之前的类似,但现在实际上调用了移动构造函数。 我希望这有助于解释结果。可能还有一些其他问题与函数调用的内联和其他编译器优化有关,这将有助于解释案例2-4之间较小的差异。
*由于短字符串优化,复制构造函数可能涉及也可能不涉及动态内存分配;感谢ytoledano在评论中提出这一点。此外,我在整个回答中都隐含着这样的假设,即拷贝比移动要昂贵得多,但情况并非总是如此。 |
|
|
Setu · 如何将元素从std::map移动到std::vector 1 年前 |
|
Konvt · 标准库中异常构造函数参数类型问题 1 年前 |
|
|
bourne · 关于操作员超载的澄清 1 年前 |