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

C 11移动构造函数有副作用,第1张

概述在C中,由于标准中的特殊子句允许编译器省略对返回语句产生的复制构造函数的调用,因此即使复制构造函数具有副作用,也不能依赖从return语句调用的复制构造函数.因此,编写复制构造函数除了复制构造实例之外还执行其他 *** 作是不好的方式. 在C 11标准中是否有类似的语句允许编译器在某些情况下消除对移动构造函数的调用 – 如果是,那么这些情况是什么? Copy-elision同样适用于移动构造,它是完全相同 在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. […]

总结

以上是内存溢出为你收集整理的C 11移动构造函数有副作用全部内容,希望文章能够帮你解决C 11移动构造函数有副作用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1248795.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存