Visual Studio 2015 Update 3无法使用/std:c++14
编译以下代码段:
[] {
int values[] = {1,2,3};
for (int n : values)
{
[&] {
std::cout << n << std::endl; // 'n': undeclared identifier
}();
}
}();
另一方面,似乎用gcc和clang编译。这是MSVC中的错误吗?什么是解决方法?
答案 0 :(得分:4)
它仍然在最新和最好的2017预览版15.6.1中完成。我提交了一份错误报告。我们会看到他们说的话。问题似乎是变量是在基于范围的for循环中声明的。以下编译并运行:
[Authorization]
public class TestController : Controller
{
public ActionResult Index()
{
...
}
[Authorization (Roles="admin")
public ActionResult SecureArea()
{
...
}
}
这样做:
#include <iostream>
int main()
{
[] {
int values[] = {1,2,3};
const auto e = std::end(values);
for(auto it = std::begin(values); it!=e; ++it) {
auto n = *it;
[&] {
std::cout << n << std::endl;
}();
}
}();
return 0;
}