
So, to summarize, On my machine the results for test_variant are: fail borland 5.51 fail borland 5.64 fail msvc 6 fail VC 8.0 pass VC 7.1 pass gcc 3.3 I'm sure these are issues with other libraries and older compilers rather than the serialization of variant itself. See if you can convince the respective authors to help you on this. Robert Ramey Here is the message for msvc: test_variant.cpp Linking to lib file: libboost_serialization-vc6-mt-gd-1_32.lib C:\BoostMainCVS\boost/serialization/variant.hpp(118) : error C2780: 'class boost::_bi::bind_t<R,class boost::_mfi::dm<R,T>,class boost::_bi::list1<class boost::_bi::value<R> > > __cdecl boost::bind(R T::*,A1)' : expects 2 arguments - 3 provided C:\BoostMainCVS\boost/bind.hpp(1501) : see declaration of 'bind' C:\BoostMainCVS\boost/serialization/split_free.hpp(44) : see reference to function template instantiation 'void __cdecl boost::serialization::save(class boost::archive::binary_oarchive &,const class boost::variant<bool,float,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void4,struct boost::detail::variant::void5,struct boost::detail::variant::void6,struct boost::detail::variant::void7,struct boost::detail::variant::void8,struct boost::detail::variant::void9,struct boost::detail::variant::void10,struct boost::detail::variant::void11,struct boost::detail::variant::void12,struct boost::detail::variant::void13,struct boost::detail::variant::void14,struct boost::detail::variant::void15,struct boost::detail::variant::void16,struct boost::detail::variant::void17,struct boost::detail::variant::void18,struct boost::detail::variant::void19> &,unsigned int)' being compiled C:\BoostMainCVS\boost/serialization/variant.hpp(118) : error C2780: 'class boost::_bi::bind_t<R,struct boost::_mfi::cmf8<R,T,B1,B2,B3,B4,B5,B6,B7,B8>,class boost::_bi::list9<class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R> >
__cdecl boost::bind(R (__thiscall T::*)(B1,B2,B3,B4,B5,B6,B7,B8) const,A1,A2,A3,A4,A5,A6,A7,A8,A9)' : expects 10 arguments - 3 provided C:\BoostMainCVS\boost/bind/bind_mf_cc.hpp(222) : see declaration of 'bind' C:\BoostMainCVS\boost/serialization/split_free.hpp(44) : see reference to function template instantiation 'void __cdecl boost::serialization::save(class boost::archive::binary_oarchive &,const class boost::variant<bool,float,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void4,struct boost::detail::variant::void5,struct boost::detail::variant::void6,struct boost::detail::variant::void7,struct boost::detail::variant::void8,struct boost::detail::variant::void9,struct boost::detail::variant::void10,struct boost::detail::variant::void11,struct boost::detail::variant::void12,struct boost::detail::variant::void13,struct boost::detail::variant::void14,struct boost::detail::variant::void15,struct boost::detail::variant::void16,struct boost::detail::variant::void17,struct boost::detail::variant::void18,struct boost::detail::variant::void19> &,unsigned int)' being compiled C:\BoostMainCVS\boost/serialization/variant.hpp(118) : error C2780: 'class boost::_bi::bind_t<R,struct boost::_mfi::mf8<R,T,B1,B2,B3,B4,B5,B6,B7,B8>,class boost::_bi::list9<class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R> > __cdecl boost::bind(R (__thiscall T::*)(B1,B2,B3,B4,B5,B6,B7,B8),A1,A2,A3,A4,A5,A6,A7,A8,A9)' : expects 10 arguments - 3 provided C:\BoostMainCVS\boost/bind/bind_mf_cc.hpp(211) : see declaration of 'bind' C:\BoostMainCVS\boost/serialization/split_free.hpp(44) : see reference to function template instantiation 'void __cdecl boost::serialization::save(class boost::archive::binary_oarchive &,const class boost::variant<bool,float,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void4,struct boost::detail::variant::void5,struct boost::detail::variant::void6,struct boost::detail::variant::void7,struct boost::detail::variant::void8,struct boost::detail::variant::void9,struct boost::detail::variant::void10,struct boost::detail::variant::void11,struct boost::detail::variant::void12,struct boost::detail::variant::void13,struct boost::detail::variant::void14,struct boost::detail::variant::void15,struct boost::detail::variant::void16,struct boost::detail::variant::void17,struct boost::detail::variant::void18,struct boost::detail::variant::void19> &,unsigned int)' being compiled C:\BoostMainCVS\boost/serialization/variant.hpp(118) : error C2780: 'class boost::_bi::bind_t<R,struct boost::_mfi::cmf7<R,T,B1,B2,B3,B4,B5,B6,B7>,class boost::_bi::list8<class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R> > > __cdecl boost::bind(R (__thiscall T::*)(B1,B2,B3,B4,B5,B6,B7) const,A1,A2,A3,A4,A5,A6,A7,A8)' : expects 9 arguments - 3 provided C:\BoostMainCVS\boost/bind/bind_mf_cc.hpp(198) : see declaration of 'bind' C:\BoostMainCVS\boost/serialization/split_free.hpp(44) : see reference to function template instantiation 'void __cdecl boost::serialization::save(class boost::archive::binary_oarchive &,const class boost::variant<bool,float,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void4,struct boost::detail::variant::void5,struct boost::detail::variant::void6,struct boost::detail::variant::void7,struct boost::detail::variant::void8,struct boost::detail::variant::void9,struct boost::detail::variant::void10,struct boost::detail::variant::void11,struct boost::detail::variant::void12,struct boost::detail::variant::void13,struct boost::detail::variant::void14,struct boost::detail::variant::void15,struct boost::detail::variant::void16,struct boost::detail::variant::void17,struct boost::detail::variant::void18,struct boost::detail::variant::void19> &,unsigned int)' being compiled C:\BoostMainCVS\boost/serialization/variant.hpp(118) : error C2780: 'class boost::_bi::bind_t<R,struct boost::_mfi::mf7<R,T,B1,B2,B3,B4,B5,B6,B7>,class boost::_bi::list8<class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R> > __cdecl boost::bind(R (__thiscall T::*)(B1,B2,B3,B4,B5,B6,B7),A1,A2,A3,A4,A5,A6,A7,A8)' : expects 9 arguments - 3 provided C:\BoostMainCVS\boost/bind/bind_mf_cc.hpp(187) : see declaration of 'bind' C:\BoostMainCVS\boost/serialization/split_free.hpp(44) : see reference to function template instantiation 'void __cdecl boost::serialization::save(class boost::archive::binary_oarchive &,const class boost::variant<bool,float,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void4,struct boost::detail::variant::void5,struct boost::detail::variant::void6,struct boost::detail::variant::void7,struct boost::detail::variant::void8,struct boost::detail::variant::void9,struct boost::detail::variant::void10,struct boost::detail::variant::void11,struct boost::detail::variant::void12,struct boost::detail::variant::void13,struct boost::detail::variant::void14,struct boost::detail::variant::void15,struct boost::detail::variant::void16,struct boost::detail::variant::void17,struct boost::detail::variant::void18,struct boost::detail::variant::void19> &,unsigned int)' being compiled C:\BoostMainCVS\boost/serialization/variant.hpp(118) : error C2780: 'class boost::_bi::bind_t<R,struct boost::_mfi::cmf6<R,T,B1,B2,B3,B4,B5,B6>,class boost::_bi::list7<class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R>,class boost::_bi::value<R> > > __cdecl boost::bind(R (__thiscall T::*)(B1,B2,B3,B4,B5,B6) const,A1,A2,A3,A4,A5,A6,A7)' : expects 8 arguments - 3 provided C:\BoostMainCVS\boost/bind/bind_mf_cc.hpp(174) : see declaration of 'bind' C:\BoostMainCVS\boost/serialization/split_free.hpp(44) : see reference to function template instantiation 'void __cdecl boost::serialization::save(class boost::archive::binary_oarchive &,const class boost::variant<bool,float,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct boost::detail::variant::void4,struct boost::detail::variant::void5,struct boost::detail::variant::void6,struct boost::detail::variant::void7,struct boost::detail::variant::void8,struct boost::detail::variant::void9,struct boost::detail::variant::void10,struct boost::detail::variant::void11,struct boost::detail::variant::void12,struct boost::detail::variant::void13,struct boost::detail::variant::void14,struct boost::detail::variant::void15,struct boost::detail::variant::void16,struct boost::detail::variant::void17,struct boost::detail::variant::void18,struct boost::detail::variant::void19> &,unsigned int)' being compiled C:\BoostMainCVS\boost/serialization/variant.hpp(118) : error C2780: 'class boost::_bi::bind_t<R,struct boost::_mfi::mf6<R,T,B1,B2,B3,B4,B5,B6>,class boost::_bi::list7<class boost::_bi::value<R>,class boost::_bi::value<R>,class... (remainder deleted because of excessive size)