#include <vector>
int main()
{
std::vector<int> v;
for (int x : v) do {} while (0);
}在VS2013上编译上面的代码将产生error C2059: syntax error : '}'。然而,GCC可以成功地编译代码。
若要再现错误,应满足下列要求:
对此有什么见解吗?
发布于 2016-01-08 09:51:29
这是一个bug,并且是在VS2015中修复的。
发布于 2016-01-08 10:10:28
可以使用括号来避免MSVC 2013错误。以下代码在MSVC 2013更新4中编译良好:
std::vector<int> v;
for (int x : v)
{
do
{
} while (0);
}https://stackoverflow.com/questions/34673799
复制相似问题