Boost logo

Boost Users :

Subject: Re: [Boost-users] Boost, GCC, TR1 question
From: John Maddock (john_at_[hidden])
Date: 2009-04-07 04:30:41


> We've stumbled across an incompatiblity in mixing TR1 stuff from GCC 4.3
> and Boost. The smallest test case is simply
>
> #include <tr1/array>
> #include <boost/tr1/tuple.hpp>
>
> This fails because GCC's array declares and specializes the GCC's
> tuple_size and tuple_element, while boost/tr1/tuple.hpp by default uses
> ::boost::fusion::tuple_size and tuple_element.

That's a known issue: you can't mix Boost.TR1 with another implementation
since they both want to use the std::tr1 namespace.

> It appears that defining BOOST_HAS_GCC_TR1 before including the boost
> libraries will solve the problem. Is there a better way?

No not really, unless you use the GCC TR1 implementation throughout?

> More importantly, this is code in part of library used by a number of
> other projects. Will we have to recompile the boost libraries (we're
> using the current Ubuntu package), and/or any of our projects that link
> against this code, or should linkage not be a problem?

No recompilation necessary: Boost.TR1 is just a set of header-only thin
wrappers around other code.

HTH, John.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net