jga*_*fin 3 c++ legacy-code visual-studio-2013
我正在研究一个大型遗留项目,其中在for语句中声明的变量在范围之外使用.VS2013不喜欢这样,并给出编译器错误.
我如何告诉VStudio允许这样做?
for (CBookmarks::iterator it = m_listBookmarks.begin();
!(it==m_listBookmarks.end()) && hSelected!=it->hParent;
it++);
CString Hierarchy = LookupHierarchy(it->hParent);
Run Code Online (Sandbox Code Playgroud)
这是一个我没有维护的大型项目.我只是阅读源代码并尝试将其作为新项目的参考.我不想"修复"代码库.
编辑
出于某种原因,我仍然遇到编译错误,尽管配置:

我尝试更改https://msdn.microsoft.com/en-us/library/84wcsx8x.aspx?f=255&MSPPError=-2147217396但我仍然遇到编译错误.
使用:
/Zc:forScope-
Run Code Online (Sandbox Code Playgroud)
记录如下: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);
Run Code Online (Sandbox Code Playgroud)
重要说明激活设置后,您需要删除预编译的头文件缓存文件(*.pch),否则无效.