允许在本地范围内使用变量
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),否则无效。
我正在查看一个大型遗留项目,其中在 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),否则无效。