错误:无法推断出' auto'类型(需要初始化程序)

时间:2015-05-30 02:10:08

标签: c++

当我使用g ++编译项目时,它正在运行,但是当涉及到visual studio时,它显示错误错误:无法推断' auto'类型(需要初始化程序)

代码:

void Student::eat() {

    // Holds file data
    map< string, tuple<int, int, int, int> > data;

     for (const auto& entry : data)
    {

    }

}

我缩短了代码,所以我可以指出问题所在。我在进入时遇到了错误。

 for (const auto& entry : data)

1 个答案:

答案 0 :(得分:6)

Visual Studio 2010不支持基于范围的for循环,但它支持auto,所以你可以这样做:

for (auto i = data.begin(); i != data.end(); ++i)
{
    ...
}

但请注意,有了这个,你就有了一个迭代器,而不是你对基于范围的for循环所拥有的元素。因此,您需要取消引用它,即i->firsti->second