I found it useful to change some of the warnings generated by Visual Studio.
For instance, this statement:
if (num = 10) { doSomething(); }
Generates a warning, but I cannot see any case where this would not be a bug. So I change this warning and some others to errors: like this:
#pragma warning (error: 4715)
#pragma warning (error: 4706)
#pragma warning (error: 4553) // '==' : operator has no effect; did you intend '='?
#pragma warning (error: 4150) // deletion of pointer to incomplete type
#pragma warning (error: 4390) // empty controlled statement found;
#pragma warning (disable: 4996) // openf is dangerous (not!)
Now, there’s no way you can ignore it. By the way, there is a bug in Visual Studio, sometimes it won’t flag warning mentioned above at all.