[ITK-dev] Header clashes with Apple

Luc Hermitte luc.hermitte at c-s.fr
Thu Nov 19 11:17:58 EST 2015


Le 18/11/2015 22:28, Bill Lorensen a écrit :
> I think itkCheck might be better.

Here check() is a function not a macro.
The usual ITK naming convention would require Check, not itkCheck.

The fact some apple code has hijacked check instead of __check or _Check
is a very poor choice. We should not have had any problem with check()
(if we except KWStyle which, oddly, missed it)

Regards,
-- 
Luc Hermitte

> 
> On Wed, Nov 18, 2015 at 4:26 PM, Matt McCormick
> <matt.mccormick at kitware.com> wrote:
>> Hi Seun,
>>
>> Thanks for discussing the issue.
>>
>> I think a good name would be "Check".  Could you please submit a patch? [1]
>>
>> Thanks,
>> Matt
>>
>> [1] http://www.itk.org/Wiki/ITK/Git/Develop
>>
>>
>> On Wed, Nov 18, 2015 at 4:08 PM, Seun Odutola <seun at rogue-research.com> wrote:
>>> Hi Everyone,
>>>
>>>     Just wanted to bring to your attention a problem I faced working on a project using ITK 4.9 on Mac OS X 10.11, Apple declares a macro called 'check’  that takes just a parameter and apparently there is a name clash with a typedef of ITK’s (see itkPromoteType.h).
>>>
>>> // snippet
>>> template <typename TA, typename TB> struct PromoteType
>>> {
>>>   static TA a;
>>>   static TB b;
>>>
>>>   // Aimed at supporting overloads
>>>   template <typename T> static Details::Identity<1>::Type& check(typename Details::SizeToType<1,  TA, TB>::Type, T);
>>>   template <typename T> static Details::Identity<2>::Type& check(typename Details::SizeToType<2,  TA, TB>::Type, T);
>>>
>>>   // Common numeric types
>>>   static Details::Identity<3 >::Type& itkcheck(typename Details::SizeToType<3,  TA, TB>::Type, int);
>>>
>>> // end of snippet
>>>
>>>  I set about trying to fix this issue and on renaming the ‘check’ in my case I chose ‘itkcheck’, rebuilt ITK and ran my project everything worked fine.
>>>
>>> My proposal to the team if indeed I’m right is the above typedef need renaming as we can’t change Apple’s implementation so it’s most likely ITK will need to fix this. Currently renaming the check typedef works fine.
>>> Thanks
>>>
>>> Regards Seun
>>>
>>> p.s: I could submit a patch if that’s fine but I would like to know what name the ITK team would prefer to be substituted for the ‘check' typedef above.
>>> _______________________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Kitware offers ITK Training Courses, for more information visit:
>>> http://kitware.com/products/protraining.php
>>>
>>> Please keep messages on-topic and check the ITK FAQ at:
>>> http://www.itk.org/Wiki/ITK_FAQ
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://public.kitware.com/mailman/listinfo/insight-developers
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Kitware offers ITK Training Courses, for more information visit:
>> http://kitware.com/products/protraining.php
>>
>> Please keep messages on-topic and check the ITK FAQ at:
>> http://www.itk.org/Wiki/ITK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://public.kitware.com/mailman/listinfo/insight-developers
> 
> 
> 



More information about the Insight-developers mailing list