#include <vector>
int main()
{
std::vector<int> v;
for (int x : v) do {} while (0);
}
在VS2013上编译上面的代码将产生error C2059: syntax error : '}'
。但是,GCC可以成功编译代码。
要重现错误,应满足以下要求:
对此有何见解?
答案 0 :(得分:0)
这是一个错误,它已在VS2015中修复。
答案 1 :(得分:0)
您可以使用括号来避免MSVC 2013错误。以下代码在MSVC 2013 Update 4中编译正常:
std::vector<int> v;
for (int x : v)
{
do
{
} while (0);
}