Boost logo

Boost :

From: Robert Ramey (ramey_at_[hidden])
Date: 2004-09-25 11:16:22


Vladimir wrote:

> ......./boost/boost/serialization/scoped_ptr.hpp:36: error: `make_nvp'
> undeclared (first use this function)

>The attached patch fixes the problem.

>BTW, Robert, this problem was introduce when you moved the content of the
>header from boost::serialization to just boost::. What was the rationale?
>The log only says:

> fixes for cw/comeau implement ADL

This was changed in order to function with compilers that implement
two-phase lookup. This is described (somewhat) in them manual under the
section:Reference/Class Serialization/Free Functions/Namespaces for Free
Function Overrides

Before this change, there is a problem with compilers which implement
two-phase lookup. Overrides for templates have to be defined before their
usage in another template. This conflicted with the implementation of
BOOST_CLASS_EXPORT. To support these compilers, I had to either put
non-intrusive serialization functions in the same namespace as the type
being serialized or re-organize export. The latter is non-trivial and
couldn't be guaranteed to be ready in time for release (at least at the time
the issue came up).

Perhaps, export may someday get re-organized so that BOOST_CLASS_EXPORT can
appear before the archive classes which would resolve the problem in a
simpler way. But for now - that's the way it is.

Robert Ramey


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk