[ITK-dev] Header clashes with Apple
Seun Odutola
seun at rogue-research.com
Wed Nov 18 16:08:46 EST 2015
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.
More information about the Insight-developers
mailing list