I'm using a recent (a few days old) cvs version of boost, and
the serialization libraries, and Visual Studio 7.1 is producing the
error below. This is only happening to classes which I am exporting
(like BOOST_CLASS_EXPORT_GUID(D2::Message,"D2::Message");). The reason I
am exporting them is that they are in many cases a) subclasses of each
other b) accessed through a pointer. Any help would be deeply
appreciated.
My code is:
template<class Archive >
static void serialize(Archive & ar, D2::Message& g, const unsigned
int version)
{
ar & g.getType(); // an int - error complains about this line.
ar & g.getSender(); // a string
ar & g.getMessage(); // a string
}
Error message:
c:\D2\API\NewClient\EnhancedMessageHandler.h(132) : error C2679: binary
'&' : no operator found which takes a right-hand operand of type
'uint32' (or there is no acceptable conversion)
C:\boost\boost-cvs-20050606\boost\boost\serialization\serialization.hpp(
140) : see reference to function template instantiation 'void
boost::serialization::serialize<Archive>(Archive &,D2::Message &,const
unsigned int)' being compiled
with
[
Archive=boost::archive::detail::export_impl::for_each_archive::tail,IplJrsMediaTimePoint>:
:head
]
C:\boost\boost-cvs-20050606\boost\boost\archive\detail\iserializer.hpp(1
61) : see reference to function template instantiation 'void
boost::serialization::serialize_adl(Archive &,T &,const
unsigned int)' being compiled
with
[
Archive=boost::archive::detail::export_impl::for_each_archive::tail,IplJrsMediaTimePoint>:
:head,
T=D2::Message
]
C:\boost\boost-cvs-20050606\boost\boost\serialization\extended_type_info
_typeid.hpp(71) : while compiling class-template member function 'void
boost::archive::detail::iserializer::load_object_data(boost::
archive::detail::basic_iarchive &,void *,const unsigned int) const'
with
[
Archive=boost::archive::detail::export_impl::for_each_archive::tail,D2::Message>::head,
T=D2::Message
]
C:\boost\boost-cvs-20050606\boost\boost\archive\detail\iserializer.hpp(1
72) : see reference to class template instantiation
'boost::archive::detail::iserializer' being compiled
with
[
Archive=boost::archive::detail::export_impl::for_each_archive::tail,D2::Message>::head,
T=D2::Message
]
C:\boost\boost-cvs-20050606\boost\boost\archive\detail\iserializer.hpp(1
71) : while compiling class-template member function 'const
boost::archive::detail::basic_iserializer
&boost::archive::detail::pointer_iserializer::get_basic_seria
lizer(void) const'
with
[
T=D2::Message,
Archive=boost::archive::detail::export_impl::for_each_archive::tail,D2::Message>::head
]
C:\boost\boost-cvs-20050606\boost\boost\archive\detail\iserializer.hpp(5
01) : see reference to class template instantiation
'boost::archive::detail::pointer_iserializer' being compiled
with
[
T=D2::Message,
Archive=boost::archive::detail::export_impl::for_each_archive::tail,D2::Message>::head
]
C:\boost\boost-cvs-20050606\boost\boost\serialization\export.hpp(78) :
see reference to function template instantiation 'const
boost::archive::detail::basic_pointer_iserializer
&boost::archive::detail::instantiate_pointer_iserializer(Arch
ive *,T *)' being compiled
with
[
Archive=boost::archive::detail::export_impl::for_each_archive::tail,D2::Message>::head,
T=D2::Message
]
C:\boost\boost-cvs-20050606\boost\boost\serialization\export.hpp(74) :
while compiling class-template member function 'void
boost::archive::detail::export_impl::archive::i::invoke(void)
'
with
[
Archive=boost::archive::detail::export_impl::for_each_archive::tail,D2::Message>::head,
T=D2::Message
]
C:\boost\boost-cvs-20050606\boost\boost\serialization\export.hpp(105) :
see reference to class template instantiation
'boost::archive::detail::export_impl::archive::i' being
compiled
with
[
Archive=boost::archive::detail::export_impl::for_each_archive::tail,D2::Message>::head,
T=D2::Message
]
C:\boost\boost-cvs-20050606\boost\boost\serialization\export.hpp(89) :
while compiling class-template member function 'void
boost::archive::detail::export_impl::archive::instantiate(voi
d)'
with
[
Archive=boost::archive::detail::export_impl::for_each_archive::tail,D2::Message>::head,
T=D2::Message
]
C:\boost\boost-cvs-20050606\boost\boost\serialization\export.hpp(116) :
see reference to class template instantiation
'boost::archive::detail::export_impl::archive' being compiled
with
[
Archive=boost::archive::detail::export_impl::for_each_archive::tail,D2::Message>::head,
T=D2::Message
]
C:\boost\boost-cvs-20050606\boost\boost\serialization\export.hpp(115) :
while compiling class-template member function 'void
boost::archive::detail::export_impl::for_each_archive::instantia
te(void)'
with
[
ASeq=boost::archive::detail::export_impl::for_each_archive::tail,
T=D2::Message
]
C:\boost\boost-cvs-20050606\boost\boost\serialization\export.hpp(122) :
see reference to class template instantiation
'boost::archive::detail::export_impl::for_each_archive' being
compiled
with
[
ASeq=boost::archive::detail::export_impl::for_each_archive::tail,
T=D2::Message
]
Marcin Tustin
IT Innovation Centre
2 Venture Road
Chilworth Science Park
Southampton, SO16 7NP, UK
tel: +44 23 8076 0834
fax: +44 23 8076 0833
mailto:mt@it-innovation.soton.ac.uk
http://www.it-innovation.soton.ac.uk