'auto const'和'const auto'是一样的吗?

时间:2012-05-22 20:45:25

标签: c++ c++11 const auto

是否存在差异或是否相同?

2 个答案:

答案 0 :(得分:77)

const限定符适用于左边的类型,除非左边没有任何内容,然后它适用于右边的类型。所以,它是一样的。

答案 1 :(得分:17)

受挫的例子:

std::vector<char*> test;
const auto a = test[0];
*a = 'c';
a = 0; // does not compile
auto const b = test[1];
*b = 'c';
b = 0; // does not compile

ab都有char* const类型。不要以为您只需“插入”该类型而不是关键字auto(此处为:const char* a)! const关键字将应用于auto匹配的整个类型(此处为:char*)。