[問題] const reference是什麼?

作者: lovejomi (JOMI)   2018-07-13 18:22:15
看到一篇文章
https://www.fluentcpp.com/2018/07/13/the-incredible-const-reference-that-isnt-
const/
我覺得蠻有趣的
其中一段提到
The get() method returns a const T&, with T coming from template T. In our sec
ond case, T is int&, so const T& is const (int&) &
這邊。const (int&) &
為什麼他可以直接看出這const 是修飾reference
(int&) & const
然後就是這邊感覺多了一個&
也許他這段有解釋
So being氲onst氽oesn’t say much for a reference, since they always乸re氲onst,
since they cannot rebind. This implies that氲onst (int&)湶s effectively the s
ame type as湶nt&.
但實在看不是很懂
這邊能不能套用forwarding reference的規則
int& & collapse成 int&, 所以變成
int & const ,我不確定,而且覺得不能這樣想
而且正常試圖寫
https://ideone.com/95tBGJ
無法寫得出這個語意.
請問各位有什麼規則需要釐清的嗎
謝謝
作者: Sidney0503 (Sidney0503)   2018-07-13 18:58:00
So being氲onst氽oesn’t say much for a reference,since they always乸re氲onst, since they cannot reb這種語言我也看不懂
作者: Lipraxde (Lipraxde)   2018-07-13 19:23:00
So being const doesn’t say much for a reference, since they always are const, since they cannot rebind. This implies that const (int&) is effectively the same type as int&.大概是這樣?
作者: shadow0326 (非議)   2018-07-13 21:42:00
亂碼那段是說這件事 https://tinyurl.com/y8gkkcng他是一層一層把語意消掉,T& const 等價於 T&而 (T&)& 等價於 T&,所以得到 (T&) const & 等價於T&
作者: lovejomi (JOMI)   2018-07-13 23:41:00
我也不知道為什麼手機貼上都正確 送出就變亂碼...moptt所以簡單講就是int&& collapse 成int&, 然後int&const沒意義,所以const直接忽略?
作者: sarafciel (Cattuz)   2018-07-14 00:17:00
const (int&) & =>const 修飾 (int &) =>reference自帶const語意,去掉const =>int & & =>做collapse=>int &(相當於 int const *) 我感覺是這樣

Links booklink

Contact Us: admin [ a t ] ucptt.com