[问题] 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