→ ACMANIAC: 假設會自動加上 const,那你要怎麼寫沒有 const 的變數? 01/12 13:56
→ ACMANIAC: 第二個能自動推斷,是因為它 ref 的對象是個變數名稱, 01/12 13:56
→ ACMANIAC: 所以 g 就是個別名 (alias) 而已。 01/12 13:57
→ RealJack: 可是第二行不加const會error,編譯器為何不順便加上? 01/12 14:08
→ RealJack: 你講的情況應該是非引用, auto i=ci; const auto j=ci; 01/12 14:10
→ RealJack: 此時i和j都是top level const,可忽略初始值的const屬性 01/12 14:12
→ RealJack: 所以可自行決定是否要加const 01/12 14:15
→ RealJack: 應該是說h算是引用還是變數呢? h看起來不像別名 01/12 14:19
→ bibo9901: temporary 只能用 const reference 01/12 16:03
→ bibo9901: 不然 2 很可能跟本不在記憶體裡面, 如何參考? 01/12 16:04
→ RealJack: 回樓上,編譯器為何不幫忙加const? 第二行卻自動加? 01/12 16:37
→ uranusjr: 看了半天還是不懂你的問題在哪裡, 如果編譯器會自動加, 01/12 22:18
→ uranusjr: 當你真的想要 h 是 int & 時要怎麼寫? 01/12 22:18
→ uranusjr: 唔, 好像懂了, 你的意思是為什麼編譯器沒有幫常數做特例 01/12 22:19
→ uranusjr: 這大概只能說因為沒有規定他要幫你這麼做吧 01/12 22:20
→ RealJack: 樓上,第3行是非加const不可,為何編譯器不順便加? 01/12 23:43
→ RealJack: 第二行也是非加const不可,這時編譯器就自動幫忙加const 01/12 23:44
→ RealJack: 為我是好奇為何會有差別待遇 01/12 23:44
→ firose: 可能是左值、右值的關係?右值要明確寫? 01/13 00:06
→ firose: 感覺應該要自動推 @@ 01/13 00:15
→ firose: 應該左值不給推,要 auto&& 才抓得到,auto& 就比照 T& 01/13 00:22
→ firose: 右 01/13 00:23
推 carylorrk: 2 是 int 不是 const int。that's all. 01/14 05:45