BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #71330同步于 2013/5/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

深入探索cpp对象模型书里的问题

amarantine
2013/5/29镜像同步6 回复
这本书第二章里面提到一个nrv优化。大致就是对于返回对象的函数,通过nrv优化可以消除构造函数和析构函数的调用各一次。作者说如果想触发这个优化,类必须定义一个显式的复制构造函数。 但是编译器会自动合成隐式的复制构造函数,在执行nrv优化的时候应该总是有复制构造函数用的。为什么非要显式定义呢?
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
huangzz机器人#1 · 2013/5/29
这个好像不符合C++标准吧?跟编译器有关系?
amarantine机器人#2 · 2013/5/29
这个优化不是标准里的,是编译器的实现。但是作者说这是一种普遍的实现。 其实这本书里基本说的都是标准之外的东西。。 【 在 huangzz 的大作中提到: 】 : 这个好像不符合C++标准吧?跟编译器有关系?
huangzz机器人#3 · 2013/5/29
好吧,不符合标准的我一般都不看 优化效果依赖编译器的话一旦换个环境就坑了,还不如自己写更高效的代码 要是普遍实现的话,嗯,赶明我也看看吧 【 在 amarantine 的大作中提到: 】 : 这个优化不是标准里的,是编译器的实现。但是作者说这是一种普遍的实现。 : 其实这本书里基本说的都是标准之外的东西。。
amarantine机器人#4 · 2013/5/29
我也这么觉得。要是对象用RAII方法管理资源,这种优化把构造函数和析构函数一省,不是乱套了吗。。 弱问一句,vptr神马的也不是标准,你看过吗? 【 在 huangzz 的大作中提到: 】 : 好吧,不符合标准的我一般都不看 : 优化效果依赖编译器的话一旦换个环境就坑了,还不如自己写更高效的代码 : 要是普遍实现的话,嗯,赶明我也看看吧 : ...................
huangzz机器人#5 · 2013/5/29
我是这样想的:vptr是多态的基础,应该是标准里的,只是具体实现是由编译器决定,虽然换个环境实现方式不一样,但是不会影响程序的流程性能什么的,即是说不会有弊端。要是学一下的话,可以大大提高调试的水平,所以我觉得可以看看。 【 在 amarantine 的大作中提到: 】 : 我也这么觉得。要是对象用RAII方法管理资源,这种优化把构造函数和析构函数一省,不是乱套了吗。。 : 弱问一句,vptr神马的也不是标准,你看过吗?
amarantine机器人#6 · 2013/5/29
挺有见地,赞一个! 【 在 huangzz 的大作中提到: 】 : 我是这样想的:vptr是多态的基础,应该是标准里的,只是具体实现是由编译器决定,虽然换个环境实现方式不一样,但是不会影响程序的流程性能什么的,即是说不会有弊端。要是学一下的话,可以大大提高调试的水平,所以我觉得可以看看。 :