I also removed the unnecessary headers and also <ciso646>, which was needed for one logcial test (so far I have never seen this header used in commercial code) |
Exactly which headers did I 'unnecessarily' include?
According to the Standard, the <ciso646> header is supposed to be empty, but in actual practice some compilers require you to #include it to use operator synonyms, which I have a habit of using. (Whether or not you consider that a good thing is another issue, which you did not address. I don't frankly care what your experience is with commercial code -- particularly considering the poor quality of a large portion of commercial code.)
I also removed the custom abs() -- the standard version is now being used |
For which you'll need to #include one of <cmath> or <cstdlib>...
(note that the compiler treats abs, fabs, strlen, ... specially -- for the release build -- inserting intrisic code for these operations. See MSDN documentation on /Oi compiler switch). |
The custom abs() works fine, and it only exists to make code more readable. Any conforming compiler can get you your "intrinsic" crap for a non-issue optimization. (I suspect you don't really know what MS means by the word
intrinsic.)
The hash defines are to shut up warnings, etc. |
...which only exist with MS compilers, as MS has deprecated so many standard functions. Nevertheless, it is good to remind us, particularly as it doesn't hurt anything to put them there.
Unless the latest Express versions are bundled with the SDK? |
Since 2008.
Though, honestly, I always forget that the older VC Express versions don't come bundled with the Windows SDK, but it has always been possible to add it easily enough. The nice thing about that is that it is much more portable across Windows compilers than <conio.h>.
I had issue because your commentary borders on abusive. If I have actually made an error somewhere, then post it. But it shows poor taste to assert your position superior with snide commentary about my code. So, having said my fill, I'm off to just carry on working.