|
Fix MSVC's "for"
Submitted by |
Many people probably know this already, but:
MSVC has a small but annoying bug with the scope of variables defined in for
loops. The following fragment is valid c++ but will not compile on msvc.
for(int i=0; i<10; i++) {
DoSomeThing();
}
for(int i=0; i<10; i++) {
DoSomeThingElse();
} |
MSVC complains about the second for loop, because the variable 'i' is
defined as if it were scoped just outside of the first for loop.
a quick one liner to put at the top of your file, (or even better, in your
msvc-specific header files, since everyone is of course targetting multiple
platforms and compilers :)):
#define for if(false) else for |
now, for loops will have the semantics that they should, with one small
exception: should you type/syntax err badly enough to have an 'else' clause
right after your for loop, the compiler will not catch the error... But
I've never heard of this happening anyway.
|
The zip file viewer built into the Developer Toolbox made use
of the zlib library, as well as the zlibdll source additions.
|