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

Allow for variable to be used in local scope

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

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

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

CString Hierarchy = LookupHierarchy(it->hParent);

这是一个我不维护的大型项目。我只是阅读源代码并尝试 运行 它作为新项目的参考。我不想"fix"代码库。

编辑

出于某种原因,尽管进行了配置,我仍然遇到编译错误:

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

使用:

/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),否则无效。