【发布时间】:2015-08-21 00:54:02
【问题描述】:
const int ci = 10;
auto i = ci; // i will be "int" instead of "const int"
i = 20;
我想知道为什么 auto 是为这种行为而设计的?
为什么类型 i 是 "int" 而不是 "const int" ?
这里有什么问题?
我认为理解为什么会帮助我们记住它
【问题讨论】:
-
因为
ci的值是int和auto推导出int为i。 -
那么为什么 auto &i = ci;推断 const int& ?
-
因为要引用 const 对象,引用必须是 const。
auto i = ci;正在制作副本,const 对象的副本不需要是 const。 -
@AbhinavGauniyal "value of ci" 值不是正确的 C++ 术语;你的意思是,转换为右值的结果?
-
@camino 你期待什么?
标签: c++ c++11 auto type-deduction