Re: [sigc] recent sigc++ and Objective C/Cocoa/Carbon
- From: Paul Davis <paul linuxaudiosystems com>
- To: "James Lin (MTS)" <jameslin vmware com>
- Cc: libsigc-list gnome org
- Subject: Re: [sigc] recent sigc++ and Objective C/Cocoa/Carbon
- Date: Thu, 29 May 2008 17:02:53 -0400
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]