[IGSTK-Developers] Borland compiler and StateMachine macro

Julien Jomier jjomier at cs.unc.edu
Tue Apr 19 13:23:20 EDT 2005


Hi Luis,

I completely agree with you! :)

So here are some issues:

1) We cannot put the #ifdef __BORLAND__ #endif inside the macro beacuse 
the compiler doesn't like it.

2) Definitively, bcc doesn't like multiple semicolons...

Should we skip the #ifdef/#endif statement? or do you have other ideas?

I think it's still ok to support bcc32 since the compiler can find 
strange errors in the code. However it shouldn't be used in the OR :)

Julien

Luis Ibanez wrote:
> 
> 
> Hi Julien,
> 
> 
> Given the central role of the State Machine on the toolkit
> I rather not put a dummy variable on it just to cover for
> the poor implementation of the Borland compiler.
> 
> 
> I would rather drop support for Borland altogether...
> 
> 
> Maybe a less invasive option is to put a "typedef"
> (instead of having an extra byte)... something like
> 
> 
> #ifdef __BORLAND__
>   // This variable is added to support broken bcc compiler
>   typedef char BorlandIsABadCompilerType;;;
> #endif
> 
> 
> Again, given the critical nature of IGSTK we should
> continuously evaluate how much are we willing to convolute
> the code just for supporting an extra compiler...
> 
> 
> 
> Put in perspective:  We are facilitating the use of broken
> compiler for developers to write Image Guided Surgery
> applications...    there is something wrong about that.
> 
> Is like helping patients to reuse defective syringes...
> 
> 
> 
>    Luis
> 
> 
> 
> --------------------
> Julien Jomier wrote:
> 
>> Hi Luis,
>>
>> bcc doesn't like the extra line either...
>>
>> I propose to add the following lines at the end of the macro:
>>
>> #ifdef __BORLAND__
>>   // This variable is added to support broken bcc compiler
>>   char mydummychartypeforbcc
>> #endif
>>
>> What do you think?
>>
>> Julien
>>
>> Luis Ibanez wrote:
>>
>>>
>>> Hi Julien,
>>>
>>> Thanks for looking into the Borland errors.
>>>
>>> This is interesting, specially since an empty
>>> statement (e.g. an isolated ";" is supposed to
>>> be acceptable anywhere...
>>>
>>> I wonder if Borland will be happier with:
>>>
>>>   private:
>>>      ;
>>>
>>>
>>> meaning that we add a couple of empty lines
>>> to the declaration of the Macro.
>>>
>>> or... another option if to put an #ifdef BORLAND
>>> in the macro...
>>>
>>> If you have a chance, could you please give it
>>> a try to the extra blank line and let us know
>>> what you find ?
>>>
>>>
>>>    Thanks
>>>
>>>
>>>      Luis
>>>
>>>
>>> --------------------
>>> Julien Jomier wrote:
>>>
>>>> Hi all,
>>>>
>>>> I was looking at the compiling error on bcc32 and found out that 
>>>> Borland compiler doesn't like:
>>>>
>>>>   private: ;
>>>>
>>>> The problem comes from the macro
>>>>
>>>> igstkStateMachineMacro();
>>>>
>>>> This macro ends by: 'private:' so the semicolon at the end causes 
>>>> bcc to report an error.
>>>>
>>>> We have two options (AFAIK):
>>>>
>>>> 1) write:
>>>>   igstkStateMachineMacro()
>>>>
>>>> instead of
>>>>
>>>>   igstkStateMachineMacro();
>>>>
>>>> 2) Add something like: 'char dummy' at the end of the macro...
>>>>
>>>> I prefer the second option and maybe there is another alternative,
>>>> let me know what you think,
>>>>
>>>> thanks,
>>>>
>>>> Julien
>>>>
>>>> _______________________________________________
>>>> IGSTK-Developers mailing list
>>>> IGSTK-Developers at public.kitware.com
>>>> http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-developers
>>>>
>>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
> 
> 
> 
> 
> 
> 




More information about the IGSTK-Developers mailing list