社区
C语言
帖子详情
关于Inside the C++ Object Model一书中的一个问题
leasun
2003-02-18 05:46:45
在书中第67页上说,因为test class没有copy constructor,所以编译器不能执行NRV优化。不过我看在NRV优化中不需要copy constructor。谁能告诉我为什么?
...全文
90
9
打赏
收藏
关于Inside the C++ Object Model一书中的一个问题
在书中第67页上说,因为test class没有copy constructor,所以编译器不能执行NRV优化。不过我看在NRV优化中不需要copy constructor。谁能告诉我为什么?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
晨曦2003
2003-02-22
打赏
举报
回复
楼上的,你多少分了?
love_snoopy
2003-02-22
打赏
举报
回复
NRV的作用就是减少,甚至消除对copy constructor的调用,以换取效率。
哎,什么时候涨星星呢?!?!?!
chinajiji
2003-02-22
打赏
举报
回复
如果你没有显式地写一个copy constructor,并且编译器为你自动生成的copy constructor 是 trivial的,那么,实际上编译器就不会为你真正生成一个copy
constructor,结果编译器可能在准备用NRV优化你的代码时,由于没有一个可以利用的copy constructor而不打开NRV优化.
但,如果你显式地写了一个copy constructor,那么,编译器在进行NRV优化时就可以找到一个copy constructor了,所以,这时就可以执行NRV优化了.
有的编译器则不需要这样做,即没有显式地定义一个copy constructor 也可以实施NRV优化.总之,这与编译器的实现有关.
J2eeLearner
2003-02-22
打赏
举报
回复
不需要copy constructor?
//书已经看了很久了! 书上说得很清楚 ,NRV优化需要你显式的提供拷贝构造函数(尽管他的功能和编译器默认的拷贝构造函数类似!)。
书上还把编译器生成的拷贝构造函数也分为两类! 你注意一下他们之间的区别!
建议 你直接看最后一章,其余的可以不怎么看!
leasun
2003-02-22
打赏
举报
回复
up
ckacka
2003-02-18
打赏
举报
回复
怎么提交了两次?ft~~~
ckacka
2003-02-18
打赏
举报
回复
对象模型上的东西都是C++编译器的规范,不过不一定你的编译器有这样的功能,至少vc没有!
毕竟作者是cfront的作者!
ckacka
2003-02-18
打赏
举报
回复
对象模型上的东西都是C++编译器的规范,不过不一定你的编译器有这样的功能,至少vc没有!
毕竟作者是cfront的作者!
chinajiji
2003-02-18
打赏
举报
回复
有的编译器需要显式地定义一个copy constructor 来激活NRV优化.有的编译器则不需要这样做,即没有显式地定义一个copy constructor 也可以实施NRV优化.总之,这与编译器的实现有关.
Ins
ide
the
C++
Object
Model
/深度探索
C++
对象模型
C++
成山似海的书籍堆
中
,这一本不是婴幼儿奶粉,也不是较大婴儿奶粉,它是成人专用的低脂高钙特殊奶粉。 对于
C++
底层机制感兴趣的读者,这本书会给你“漫卷诗书喜欲狂”的感觉。 了解
C++
Object
Model
,是学习Component
Object
Model
的最短路线。 如果你是一位
C++
程序员,渴望对于底层知识获得
一个
完整的了解,那么
Ins
ide
The
C++
Object
Model
正适合你。
Ins
ide
the
C++
Object
Model
(
中
,英文版)最新版
Ins
ide
The
C++
Object
Model
专注于
C++
对象导向程序设计的底层机制,包括结构式语意、暂时性对象的生成、封装、继承,以及虚拟——虚拟函数和 ... 如果你是一位
C++
程序员,渴望对于底层知识获得
一个
完整的了解,那么
Ins
ide
The
C++
Object
Model
正适合你。
Ins
ide
The
C++
Object
Model
Ins
ide
The
C++
Object
Model
Ins
ide
The
C++
Object
Model
Ins
ide
The
C++
Object
Model
Ins
ide
The
C++
Object
Model
Ins
ide
The
C++
Object
Model
Ins
ide
the
C++
Object
Model
Ins
ide
the
C++
Object
Model
经典书籍
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章