亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3182 | 回復: 8
打印 上一主題 下一主題

[C++] 函數(shù)參數(shù)雙&修飾參數(shù)類型是什么意思? [復制鏈接]

論壇徽章:
9
摩羯座
日期:2013-08-15 15:18:48獅子座
日期:2013-09-12 18:07:47金牛座
日期:2013-09-16 13:23:09辰龍
日期:2013-10-09 09:03:27白羊座
日期:2013-10-17 13:32:44子鼠
日期:2014-04-23 15:09:38戌狗
日期:2014-09-17 11:37:542015年亞洲杯之韓國
日期:2015-03-26 10:16:442015亞冠之武里南聯(lián)
日期:2015-08-18 14:55:52
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2014-02-19 12:26 |只看該作者 |倒序瀏覽
比如void f(int&&),這是什么意思?是C++11的新特性還是VS自己擴展的?我在VS2012的vector代碼里面看到的。
我搜了下,說是用于什么右值引用,是不是就是這么個用法:
這樣寫f(5)就可以過編譯,用于替代這種寫法,“void f(int&),然后f((int&)(const int&)5)”。
以及class A和void f(A&&),f(A())這樣就可以了,而不需要f((A&)(const A&)A())。
不過這個到底是VS自己搞出來的,還是C++11。

論壇徽章:
9
摩羯座
日期:2013-08-15 15:18:48獅子座
日期:2013-09-12 18:07:47金牛座
日期:2013-09-16 13:23:09辰龍
日期:2013-10-09 09:03:27白羊座
日期:2013-10-17 13:32:44子鼠
日期:2014-04-23 15:09:38戌狗
日期:2014-09-17 11:37:542015年亞洲杯之韓國
日期:2015-03-26 10:16:442015亞冠之武里南聯(lián)
日期:2015-08-18 14:55:52
2 [報告]
發(fā)表于 2014-02-19 16:13 |只看該作者
這么久都沒人回,我猜測應該不是11標準了,估計是VS自己擴展的……

論壇徽章:
17
處女座
日期:2013-08-27 09:59:352015亞冠之柏太陽神
日期:2015-07-30 10:16:402015亞冠之薩濟拖拉機
日期:2015-07-29 18:58:182015年亞洲杯之巴勒斯坦
日期:2015-03-06 17:38:17摩羯座
日期:2014-12-11 21:31:34戌狗
日期:2014-07-20 20:57:32子鼠
日期:2014-05-15 16:25:21亥豬
日期:2014-02-11 17:32:05丑牛
日期:2014-01-20 15:45:51丑牛
日期:2013-10-22 11:12:56雙子座
日期:2013-10-18 16:28:17白羊座
日期:2013-10-18 10:50:45
3 [報告]
發(fā)表于 2014-02-19 16:21 |只看該作者
回復 1# w_anthony


    &&的確是C++11標準的一部分,稱為rvalue reference,主要是為了解決不必要的臨時對象開銷以及深度copy,配合move使用可以使用的STL的容器更加高效。

論壇徽章:
9
摩羯座
日期:2013-08-15 15:18:48獅子座
日期:2013-09-12 18:07:47金牛座
日期:2013-09-16 13:23:09辰龍
日期:2013-10-09 09:03:27白羊座
日期:2013-10-17 13:32:44子鼠
日期:2014-04-23 15:09:38戌狗
日期:2014-09-17 11:37:542015年亞洲杯之韓國
日期:2015-03-26 10:16:442015亞冠之武里南聯(lián)
日期:2015-08-18 14:55:52
4 [報告]
發(fā)表于 2014-02-19 16:26 |只看該作者
回復 3# myworkstation


    謝謝,不過它出現(xiàn)的意義,是否是解決我上面提到的那兩種情況?
有沒有其它用法?是否都用來修飾函數(shù)參數(shù)類型的?有沒有用來修飾返回值之類的其它用法?
對這個比較陌生,C++11現(xiàn)在是用不到,不過既然遇到了就想了解一下。

論壇徽章:
9
摩羯座
日期:2013-08-15 15:18:48獅子座
日期:2013-09-12 18:07:47金牛座
日期:2013-09-16 13:23:09辰龍
日期:2013-10-09 09:03:27白羊座
日期:2013-10-17 13:32:44子鼠
日期:2014-04-23 15:09:38戌狗
日期:2014-09-17 11:37:542015年亞洲杯之韓國
日期:2015-03-26 10:16:442015亞冠之武里南聯(lián)
日期:2015-08-18 14:55:52
5 [報告]
發(fā)表于 2014-02-19 16:30 |只看該作者
我目前的感覺是“在函數(shù)內使用&&聲明的對象,與引用的使用方法沒有什么不同”,可能匯編代碼的原理也沒有什么不同,只是在使用這個函數(shù)時,這個函數(shù)可以更友好的接受右值參數(shù),比如f(5)和f(A())這樣的,這是引用所做不到的,是否僅此而已?

論壇徽章:
2
酉雞
日期:2014-01-09 13:24:252015年亞洲杯之阿曼
日期:2015-02-13 00:43:51
6 [報告]
發(fā)表于 2014-02-19 19:34 |只看該作者
w_anthony 發(fā)表于 2014-02-19 16:30
我目前的感覺是“在函數(shù)內使用&&聲明的對象,與引用的使用方法沒有什么不同”,可能匯編代碼的原理也沒有什 ...

它出現(xiàn)的目的已經有人說了,是為了解決不必要的臨時對象開銷以及深度copy

論壇徽章:
59
2015年亞洲杯之約旦
日期:2015-01-27 21:27:392015年亞洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵節(jié)徽章
日期:2015-03-06 15:50:392015年亞洲杯之阿聯(lián)酋
日期:2015-03-19 17:39:302015年亞洲杯之中國
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03雙子座
日期:2014-12-10 21:39:16處女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
7 [報告]
發(fā)表于 2014-02-20 07:48 |只看該作者
回復 5# w_anthony


    好像僅此而已
f(“aaa")要寫成 f(std::string("aaa"))
的確很難看。

論壇徽章:
9
摩羯座
日期:2013-08-15 15:18:48獅子座
日期:2013-09-12 18:07:47金牛座
日期:2013-09-16 13:23:09辰龍
日期:2013-10-09 09:03:27白羊座
日期:2013-10-17 13:32:44子鼠
日期:2014-04-23 15:09:38戌狗
日期:2014-09-17 11:37:542015年亞洲杯之韓國
日期:2015-03-26 10:16:442015亞冠之武里南聯(lián)
日期:2015-08-18 14:55:52
8 [報告]
發(fā)表于 2014-02-20 09:21 |只看該作者
回復 7# folklore


    謝謝,感覺更像個語法糖,就算沒有它,如果要“解決不必要的臨時對象開銷以及深度copy”,那也可以寫成(A&)(const A&)也就是難看一點,效率上面沒有差別。

論壇徽章:
17
處女座
日期:2013-08-27 09:59:352015亞冠之柏太陽神
日期:2015-07-30 10:16:402015亞冠之薩濟拖拉機
日期:2015-07-29 18:58:182015年亞洲杯之巴勒斯坦
日期:2015-03-06 17:38:17摩羯座
日期:2014-12-11 21:31:34戌狗
日期:2014-07-20 20:57:32子鼠
日期:2014-05-15 16:25:21亥豬
日期:2014-02-11 17:32:05丑牛
日期:2014-01-20 15:45:51丑牛
日期:2013-10-22 11:12:56雙子座
日期:2013-10-18 16:28:17白羊座
日期:2013-10-18 10:50:45
9 [報告]
發(fā)表于 2014-02-20 12:07 |只看該作者
回復 8# w_anthony


    你說的問題其實只看到了rvalue,lvalue,而c++ 11中又作了細分:lvalue,xvalue(expiring value),prvalue(pure rvalue),glvalue(general lvalue),rvalue。右值引用解決的是xvalue的問題,而常引用解決的是prvalue的問題,它們是有區(qū)別的。最典型和直接的能說明問題的應用場景我覺得應該是c++ 11的新stl容器的emplace系列的方法。建議你去看看。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP