允许变量在本地范围内使用

时间:2015-06-04 12:33:51

标签: c++ visual-studio-2013 legacy-code

我正在查看一个大型遗留项目,其中for语句中声明的变量在范围之外使用。 VS2013不喜欢这样,并给编译器错误。

我如何告诉VStudio允许这样做?

for (CBookmarks::iterator it = m_listBookmarks.begin();
    !(it==m_listBookmarks.end()) && hSelected!=it->hParent;
    it++);

CString Hierarchy = LookupHierarchy(it->hParent);

这是一个我没有维护的大型项目。我只是阅读源代码并尝试将其作为新项目的参考。我不想"修复"代码库。

修改

出于某种原因,尽管配置了

,我仍然会遇到编译错误

enter image description here

我尝试更改https://msdn.microsoft.com/en-us/library/84wcsx8x.aspx?f=255&MSPPError=-2147217396但我仍然遇到编译错误。

1 个答案:

答案 0 :(得分:6)

使用:

/Zc:forScope-

记录在案:https://msdn.microsoft.com/en-us/library/84wcsx8x.aspx

但我真的很讨厌使用这种开关的想法。我建议只使用以下更改,这将产生同样的效果:

CBookmarks::iterator it = m_listBookmarks.begin();
for (;
    !(it==m_listBookmarks.end()) && hSelected!=it->hParent;
    it++);

CString Hierarchy = LookupHierarchy(it->hParent);

重要您需要在激活设置后删除预编译的头文件缓存文件(* .pch),否则无效。