错误:无法推断'auto'类型(需要初始值设定项)

  • 本文关键字:类型 auto 错误 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)

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

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

但请注意,使用此方法时,您拥有一个迭代器,而不是基于范围的for循环所拥有的元素。所以你需要解引用它,即i->firsti->second

最新更新