[EMAIL PROTECTED] wrote:
Bruce Momjian wrote:
Why is this better than:

  #if _MSC_VER == 1400

Surely this will not be true if _MSC_VER is undefined?
I experienced injustice and the reason of in OSX for it.
What was the problem with OSX?  Did it throw a warning of you did an
equality test on an undefined symbol?
The following if evaluated to true on osx, although I'm pretty sure that
_MSC_VER isn't defined on osx ;-)
#if (_MSC_VER < 1300)
...
#endif

replacing it with
#ifdef WIN32
#if (_MSC_VER < 1300)
...
#endif
#endif

fixed the problem.

No doubt, but that's quite a different test.
I mainly posted this to show what the offending ifdef in pgadmin3 looked like,
since someone referenced it, not as an argument against "#if _MSC_VER = 1400".

I guess "_MSC_VER < 1300" gets interpreted as "0 < 1300" if _MSC_VER is 
undefined,
so "_MSC_VER = 1400" would actually work.

But it still suprised me a lot that "_MSC_VER < 1300" evaluated to true if 
_MSC_VER
is undefined - maybe thats the _real_ reason why some people don't like the 
tri-state
logic in sql - it's because they get confused when trying to use the c 
preprocessor ;-)

greetings, Florian Pflug


---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to