C++ error C2040 间接寻址级别不同

 

编译时可能会遇到如下信息:

# [C++]error C2040: 间接寻址级别不同

该问题看起来比较奇怪,实际上是因为auto&变量重定义导致的。

执行下面的代码:

int main()
{
    int a = 1;
    int b = 1;
    auto& b = a;
}

可以获得提示信息:error C2040: “b”:“auto &”与“int”的间接寻址级别不同

该描述翻译过来就是:auto&定义的变量b,和前面定义过的变量b类型不同。