看板 C_and_CPP 關於我們 聯絡資訊
想請問他們有什麼不一樣嗎 auto fun() -> decltype(auto){} decltype(auto) fun(){} 然後有看到說不可以使用auto當作返回值, 實際測試一下編譯是可以過的會有什麼後果嗎? 測試代碼,只是列舉最簡單情況 看不出差異,有什麼情況一定只能用哪個嗎 代碼:http://ideone.com/nHiXmH 然後為什麼繼承的時候,取一個別名沒辦法透過auto取得 代碼:http://ideone.com/616q7s 怎麼區別什麼時候不能用auto呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.238.116.36 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1491299563.A.656.html
Sidney0503: 看effective modern c++有說 04/04 18:00
Sidney0503: 簡單說 auto 是一個"實體" decltype不一定 04/04 18:00
Sidney0503: 如果是reference型態 decltype會判斷成ref 04/04 18:01
Sidney0503: 至於另一個問題stackoverflow.com/questions/11302981 04/04 18:08
Sidney0503: 有兩個方法判斷 一是你對語法夠熟 二是靠編譯器警告 04/04 18:13
好的 感謝~
loveflames: auto倒不是絕對不能做為返回值,只要你知道會產生什 04/04 20:10
loveflames: 麼 04/04 20:10
loveflames: 至於原文開頭,兩個是沒什麼不同,後置式的寫法主要是 04/04 20:12
loveflames: 為了用在涉及參數列的推導 04/04 20:12
loveflames: 至於第二個問題,這個規則以前還真沒注意過 04/04 20:17
好的 感謝~ ※ 編輯: hunandy14 (36.238.116.36), 04/05/2017 00:24:11