
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
"Vyacheslav E. Andrejev" <vandrejev@excelsior-usa.com> wrote in message news:cmq7ir$64n$1@sea.gmane.org... 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