On Tuesday, June 4, 2002, at 07:16 AM, Bobby Thomale wrote:
However, in the PowerPlant header PP_Macros.h, the __MACH__ symbol is defined and set to zero:
OK. This is probably a minor mistake on Metrowerks' part, but it's reasonable, and not a big deal.
I was able to work around the problem for now by making the Boost libraries check for both the existance of __MACH__ and the value:
#if defined(__MACH__) && __MACH__
Seems to work.
Yes, I'd recommend that we change Boost to do the check this way. But it should be abbreviated to: #if __MACH__ The C and C++ standards guarantee that works properly with an undefined symbol. I'm going to make this change in cvs.
However, I am curious. Which way is the right way? Is the __MACH__ symbol's existance or its value supposed to signal whether or not it is "turned on"? The boost headers seem to think it is its existance, but the PowerPlant headers seem to think it is its value.
I want to report the problem, but I am not sure whose code needs to change, PowerPlant or Boost. Ideas?
Boost should change. I have no idea whether the PowerPlant thing is a bug or not, but we should just fix both sides. -- Darin