(原文链接:https://abseil.io/tips/77 译者:clangpp@gmail.com)
每周贴士 #77: 临时变量,移动,和复制
- 最初发布于:2014-07-09
- 作者:Titus Winters
- 更新于:2017-10-20
- 短链接:abseil.io/tips/77
我们正在尝试给语言专家以外的人解释清楚C++11会怎样改变代码世界,因此在“什么时候发生复制?”系列中又增加了一篇文章。这也是更广泛的尝试之中的一部分,试图用一套更简单的规则简化C++中的变量复制规则。
你会数到2吗?
你会?太好了。记住“名字规则”意味着你能为一个资源指定的所有名字,会影响该对象有多少份拷贝。(参考TotW 55复习怎么数名字)
简单解释数名字
如果你在担心发生了变量复制,那我们假设你在担心几行特定的代码。在你认为被复制的数据上,有几个名字存在?只有三种情况需要考虑:
两个名字:复制
这个容易:如果你在给同一份数据第二个名字,那就是复制。