On Fri, 2012-01-06 at 19:15 +0800, Chow Loong Jin wrote:
> On 06/01/2012 03:16, Rui Maciel wrote:
> > On 01/05/2012 04:05 PM, Chow Loong Jin wrote:
> >> The only macro I can find to do with detecting C++0x is
> >> __GXX_EXPERIMENTAL_CXX0X__ which is probably not portable. __cplusplus is
> >> supposed to be defined to a value greater than 199711L, but on my system it
> >> seems to be defined without a value, defaulting to 1.
> > After a bit of digging, a bug report has already been filed for this 
> > problem. 
> > It was filed in 2001 and it appears to have been fixed in October 2011.  
> > Here is
> > a link to the bug report.
> > 
> > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=1773
> > 
> > So, basically the __cplusplus macro will work with GCC 4.7.  Previous 
> > releases
> > will be left broken.
> 
> Interesting, so for handling gcc something like the following should work, I 
> guess.
> 
> -----8<-----
> #if __cplusplus >= 201100L || defined (__GXX_EXPERIMENTAL_CXX0X__)
> ...
> #endif
> ----->8-----
> 
> But how should we handle MSVC or other compilers?
> 
> 
> That said, C++98 code could also benefit from this addition since it allows 
> the
> use of out-of-sigc++ functors. I have managed to amend the implementation to
> compile with -std=c++98, but it requires BOOST_TYPEOF. Perhaps we could 
> isolate
> the BOOST_TYPEOF implementation for inclusion into sigc++?

Instead of checking for particular compiler versions, we would generally
add a test that is run during configure time. That would test for the
compiler capability. There are already several tests like this in
libsigc++.


-- 
murr...@murrayc.com
www.murrayc.com
www.openismus.com

_______________________________________________
libsigc-list mailing list
libsigc-list@gnome.org
http://mail.gnome.org/mailman/listinfo/libsigc-list

Reply via email to