《C++ templates》的Expression Templates一问

boodweb 2006-02-04 11:19:10
18.2中说Scalar必须用值传递,我怎么也搞不懂原因
有没有看明白的解释一下?

谢谢!
...全文
130 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
healer_kx 2006-02-07
其实只要能够生成计算表达式就可以了。关键在于那个double类型的萃取,是不是引用都是无所谓的。
回复
healer_kx 2006-02-07
Sorry,我才看到你说得那个问题了。。。看来我真的是理解错了。
它的意思可能是说Scalar对象是在编译过程中产生的函数operaor * 的那个
return的A_Scalar<T>(s);它是一个临时对象。
用白话说,你是引用不住它的,(它在构造后就会失效)

我还得再理解一下。。。 。。。还有些问题没有想通呢。
回复
healer_kx 2006-02-07
我把那一章的代码都敲了一遍。。。我这里是可以的。
要么是我没有理解你的意思。。。
我的MSN个人空间是http://spaces.msn.com/healerkx
上面的代码你可以在VC7上运行下。
顺便我们再讨论一下。

回复
healer_kx 2006-02-07
我再看看,我怎么不觉得啊。看完了再答复您。
回复
boodweb 2006-02-07
可是书上明明特别指出说会有问题啊……
回复
boodweb 2006-02-06
楼上地可以详细解释一下么?
为什么书上那么实现就一定要值传递?
回复
healer_kx 2006-02-06
可以,谁说一定是数了,当然了,这也需要你改变operator*的声明和实现了。
回复
wshcdr 2006-02-06
UP
回复
发动态
发帖子
C++ 语言
创建于2007-09-28

5.9w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
申请成为版主
社区公告
暂无公告