From: Fernando Cacciola (fcacciola_at_[hidden])
Date: 2002-03-07 09:36:28
I just ugraded to boost 1.27.0... (I use boost heavily at production code so
I need to upgrade carefully)
As I reported before, Borland cannot create a precompiled headers if static
data is contained in the header to precompile.
There are at least two boost libraries which declares static data: tuples
I noticed that these "problems" remain in release 1.27.0.
I also noticed that the bind placeholders have changed in the new version,
but the change doesn't solve the Borland problem.
As it has been mentioned before, the solution is to declare those variables
'extern' (except once in some TU).
As a boost user, I MUST include these two libraries in a pch, since they are
used right from the start, therefore, each time I upgrade to a new version
of boost, I have to manually apply the changes.
In the next message, I'll attach the files:
This NEW header contains boost::tuples::detail::swallow_asign and
The corresponding definitions in tuple_basic.hpp and
tuple_basic_no_partial_spec.hpp must be removed, and this header must be
included in boost/tuple/tuple.hpp.
Both headers have been extended to allow the static variables be declared
'extern' and '__export' (the later is required if the definition is placed
in a dll, as it is my case)
Basically, the user should define BOOST_XXX_EXTERN before including the
library headers, where XXX is either TUPLE or BIND, in order to introduce
external and dll-exported definitions of those variables. Additionally, the
headers must be included somehwere without the _EXTERN macro defined.
Could you check this and commit it?
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk