为什么自动类型说明符忽略顶级const?

时间:2018-01-22 21:51:23

标签: c++ c++11 auto decltype rvalue

以下引文均来自本书: C ++ Primer 5th ed。

引用1

  

auto通常会忽略顶级竞争。通常在   初始化。 low-level const,例如当一个初始化者   指向const的指针被保留。 ( - pp.69)

引用2

  

当我们应用decltype的表达式是变量时,   decltype返回该变量的类型,包括顶级   const和引用( - pp.70 )。

decltype比较,为什么会自动删除类型推导中的顶级常量?,然后我发现:

  

auto告诉编译器从初始化器中推断出类型,但是   暗示,使用auto作为其类型说明符的变量必须具有   初始化程序( - pp.69

到目前为止

我的理解是:auto从初始化程序中推断出类型。 initilizer是rvalue类型,它没有保存在堆栈中,因此它根本没有顶级const。因此,在类型推导期间,auto会自动删除顶级const。

我不知道我的理解是正确还是错误,如果错误请纠正。

0 个答案:

没有答案