我想使用 auto 关键字,但在编译时遇到此错误(Visual C ++ Express 2010)
typedef std::list<int> MyList;
int main()
{
const int args[] = {0, 1, 2};
MyList myList(std::begin(args), std::end(args));
for(auto& value : myList)
{
std::cout << value << std::endl;
}
}
输出:
error C2143: syntax error : missing ',' before ':'
error C2530: 'value' : references must be initialized
error C3531: 'value': a symbol whose type contains 'auto' must have an initializer
答案 0 :(得分:2)
您的代码中存在两个问题:
您需要明确包含您使用的功能的标头。
#include <list>
#include <iostream>
答案 1 :(得分:1)
VS2010中的C ++编译器确实支持基于范围的for循环,但使用a pre-standard syntax。 (严肃地说,你不能指望编译器在标准完全符合之前大约2年完成)
for each (int& value in myList)
{
std::cout << value << std::endl;
}