当编译器可以用廉价的挪动操作替换昂贵的复制操作时,也就是当它可以用一个指向一个大对象的指针的浅层复制来替换对这个大对象的深层复制的时候,挪动语义要比复制语义更快速。因此,在类中利用PIMPL方法结合挪动语义,应该能预见到有相当大的速度提升。由于QT对于每个非常规类都采用PIMPL方法,因此通过简单地使用Qt类而不是与它们对应的STL,我们应该可以看到速度有很大的提升。我将会对使用了挪动语义,应用和没有应用PIMPL方法的Qt和STL类进行比较。 使用了挪动语义和 PIMPL 方法的一个类在我的文章《通过 C 11 挪动语义提升性能》中我们将PIMPL方法应用到了CTeam这个类。
// cteam.h |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|