|
Boost : |
From: Robert Ramey (ramey_at_[hidden])
Date: 2004-11-09 16:20:29
"Vyacheslav E. Andrejev" <vandrejev_at_[hidden]> wrote in message
news:cmq7ir$64n$1_at_sea.gmane.org...
> Hello All,
>
> Seriaization library relies on argument dependent lookup (ADL) in calling
load and save functions in boost::serialization::free_loader::invoke and
boost::serialization::free_saver::invoke accordingly. Library supposes that
this feature works well in VC 7.1 (that is macro
BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP is undefined). But as I see, first, this
supposition is implemented with error, and, second, ADL not always works
very well in VC 7.1.
>
> Let's look to file /boost/serialization/split_free.hpp:
>
> namespace serialization {
>
> #if ! BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
> template<class Archive, class T>
> void save(Archive &ar, const T & t, const unsigned int);
> template<class Archive, class T>
> void load(Archive &ar, T & t, const unsigned int);
> #endif
>
I agree this looks wrong. Unfortunately I don't remember why I put this in.
Normally something like this would go in to workaround some specific problem
encountered. I'll look some more at this.
> 1) define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP for VC 7.1 since as I can see
Koening search technique implementation is unstable;
I would leave this question to those who know more about this subject.
> 2) change "#if ! BOOST_WORKAROUND(BOOST_MSVC, <= 1300)" in split_free.hpp
to "#if defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)".
this looks right to me - I'll look into it
Robert Ramey
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk