Re: [sigc] recent sigc++ and Objective C/Cocoa/Carbon



On Thu, 2008-05-29 at 13:33 -0700, James Lin (MTS) wrote:
> Paul Davis wrote:
> > 
> > looks like one or more of Objective C/Cocoa/Carbon has taken the
> > hairbrained step of #define-ing "nil". this makes this construction:
> > 
> >    struct nil ....
> > 
> > in functors/functor_trait.h a little dubious.
> 
> You might want to check out this earlier thread:
> 
> http://mail.gnome.org/archives/libsigc-list/2006-June/msg00003.html
> 

so, the problem wasn't solved.

i took the gordian knot approach:

#ifdef nil
#undef nil
#endif

in functor_trait.h, and that fixed all the problems that I encountered.

its a bit heavy handed, and not really appropriate. 

the problem that murray discovered was that somewhat inadvertently,
sigc::nil is used by almost every slot<> template. this means that it is
impossible to rename sigc::nil without breaking the gtkmm ABI.
therefore, fixing this means either:

	* break the gtkmm ABI (not nice, since this is supposed to be a sigc
fix)
	* use dastardly macro stuff
	* use heavy handed macro stuff and tell people that they can't
mix-n-match Cocoa/Carbon/ObjC with sigc++ without very, very careful use
of header inclusion order

i don't see any other solutions. anyone else?

--p
 




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]