函数返回临时对象时有没有调用拷贝构造函数?
生活随笔
收集整理的這篇文章主要介紹了
函数返回临时对象时有没有调用拷贝构造函数?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先,我用g++不能編譯你的代碼,A& a = fn();這一句報錯:用類型為‘A’的右值初始化類型為‘A&’的非常量引用無效。
把引用去掉后(A a = fn();)發現還是沒有調用copy constructor。網上查了一下發現這叫“copy elision”,就是說copy constructor即使有副作用還是會被編譯器優化掉的。
把引用去掉后(A a = fn();)發現還是沒有調用copy constructor。網上查了一下發現這叫“copy elision”,就是說copy constructor即使有副作用還是會被編譯器優化掉的。
總結
以上是生活随笔為你收集整理的函数返回临时对象时有没有调用拷贝构造函数?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 酸辣小黄瓜的做法?
- 下一篇: 霸剑霄云录配置要求是什么?