加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C 11移动构造函数有副作用

发布时间:2020-12-16 05:38:59 所属栏目:百科 来源:网络整理
导读:在C中,由于标准中的特殊子句允许编译器省略对返回语句产生的复制构造函数的调用,因此即使复制构造函数具有副作用,也不能依赖从return语句调用的复制构造函数.因此,编写复制构造函数除了复制构造实例之外还执行其他操作是不好的方式. 在C 11标准中是否有类似
在C中,由于标准中的特殊子句允许编译器省略对返回语句产生的复制构造函数的调用,因此即使复制构造函数具有副作用,也不能依赖从return语句调用的复制构造函数.因此,编写复制构造函数除了复制构造实例之外还执行其他操作是不好的方式.

在C 11标准中是否有类似的语句允许编译器在某些情况下消除对移动构造函数的调用 – 如果是,那么这些情况是什么?

解决方法

Copy-elision同样适用于移动构造,它是完全相同的条款,复制构造和移动构造的省略统称为“复制省略”.

§12.8[class.copy] p31

When certain criteria are met,an implementation is allowed to omit the copy/move construction of a class object,even if the copy/move constructor and/or destructor for the object have side effects. […]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读