[問題] 用template取得array長度

作者: ko27tye (好滋好滋)   2021-06-26 22:38:47
網上找到的做法是用reference搭配template來取得
https://ideone.com/hSXrOZ
我試著改用pointer做做看,但無法通過編譯
不如說為什麼reference就能通過編譯?
查到一篇類似的問題
https://tinyurl.com/3wvr2mze
難道reference裡面有存陣列的型別和長度,
而pointer只是單純放記憶體位置嗎?
還麻煩各位高手解惑,謝謝。
作者: bhbbbbb (影)   2021-06-27 00:01:00
可以參考置底第12誡
作者: KaryuuIssen (一閃)   2021-06-27 00:28:00
錯誤的版本要傳入陣列位址才行 這裡不能靠陣列退化成指標 因為簽名不合
作者: LPH66 (-6.2598534e+18f)   2021-06-27 03:16:00
順便提一下, reference 確實在某種意味上「有存」型別長度但它不是存在程式執行的記憶體裡, 而是編譯器會記著它這也是為什麼型別簽名會被編譯器檢查出不合的部份原因
作者: ko27tye (好滋好滋)   2021-06-27 07:02:00
學到了,感謝分享!

Links booklink

Contact Us: admin [ a t ] ucptt.com