CV - 自动变量的限定符

时间:2015-07-18 16:01:30

标签: c++ c++11 auto

我发现here以下"规则":

  

[...]自动删除const和volatile限定符,只要它们位于最外层参考的顶部或右侧 [...]

我理解顶级cv限定符是变量本身的描述(与它指向或引用的描述相比)。但是什么时候是cv-qualifier"就在最外面的参考文献下面#34;为什么会自动放弃它(可能第一个问题也会回答第二个问题)?

1 个答案:

答案 0 :(得分:2)

cv 在最外面的引用正下方”意味着引用是 cv - 限定类型。例如,使用此功能:

const int& foo();

“最外面的引用”正下方的类型为const int,这意味着const也在那里。在这段代码中:

auto i = foo();

i的类型为int,而不是const intconst int&

最外层引用下面const示例包括:

const char* bar();
const double* volatile & baz();

使用auto来调用这些函数会导致分别输入const char*const double*