C++ 中的 Copy Elision
发布时间
阅读量:
阅读量
Copy Elision
- 我们都讨厌复制吗?
-
如何避免复制?
-
强制性 Copy Elision
-
非强制性 Copy Elision
-
总结
-
我们都讨厌 copy ?
关于 copy(拷贝)是我们 C++ 开发者讨论的焦点之一,在 C++ 中避免不必要的 copy 态度更是能避则避。不必要的拷贝不仅会影响程序性能还会导致一系列潜在的问题例如 C++ 的 Rule-of-Three 就是一个值得深入探讨的话题。
如何避免 copy ?
在C++的世界里,一个对象可以采用两种不同的传递方式.其中一种是_value passing_的方式,另一种则是_address/reference passing_的方式,这种 latter approach特别适用于处理pointer或reference类型的对象.通常情况下,当我们探讨数据传输的方式时,都是以将参数导入到函数体内为基础进行分析.今天,我想深入探讨_copy elision_这一概念,C.E.,即所谓的"拷贝消除".这一主题不仅涉及参数传输的问题,还与返回值的处理密切相关.需要注意的是,我对这一主题展开论述的内容限于_C++ 17版本之前_.
CE 的触发条件存在差异,并主要分为 Mandatory Elision of Copy 和 _Non-Ma
全部评论 (0)
还没有任何评论哟~
