Boost logo

Boost Users :

From: kauai (kauai_diver_at_[hidden])
Date: 2005-05-09 19:03:30


In addition I resurrected this post to the newsgroup. It
is exactly the same problem I am having:

boost 1.32, with VC7.1 I'm getting compiler errors in two
unrelated translation units both dealing with
std::set<std::string> data members. I've gone through and
ensured that i've #include'd the <set.hpp> and <string.hpp>
headers from boost/serialization. Any ideas on what might
be causing this problem? This has worked fine previously
with boost 1.31 and serialization20 version of the library.
Why would the 3 argument overload not be found?

Below are the (beginnings of the ) related compiler errors.

Thanks, Jeff

========================

C:\boost\boost_1_32_0\boost\serialization\split_free.hpp(55)
: error C2780: 'void boost::archive::load(Archive &,T &)' :
expects 2 arguments - 3 provided
       
C:\boost\boost_1_32_0\boost\archive\detail\iserializer.hpp(514)
: see declaration of 'boost::archive::load'
       
C:\boost\boost_1_32_0\boost\serialization\split_free.hpp(54)
: while compiling class-template member function 'void
boost::serialization::free_loader<Archive,T>::invoke(Archive
&,T &,const unsigned int)'
        with
        [
            Archive=boost::archive::text_iarchive,
            T=std::set<std::string>
        ]
        ....

========================

C:\boost\boost_1_32_0\boost\serialization\split_free.hpp(55)
: error C2780: 'void boost::archive::load(Archive &,T &)' :
expects 2 arguments - 3 provided
       
C:\boost\boost_1_32_0\boost\archive\detail\iserializer.hpp(514)
: see declaration of 'boost::archive::load'
       
C:\boost\boost_1_32_0\boost\serialization\split_free.hpp(54)
: while compiling class-template member function 'void
boost::serialization::free_loader<Archive,T>::invoke(Archive
&,T &,const unsigned int)'
        with
        [
            Archive=boost::archive::binary_iarchive,
            T=std::set<std::string>
        ]

       ....

--- kauai <kauai_diver_at_[hidden]> wrote:
> Date: Mon, 9 May 2005 14:07:43 -0700 (PDT)
> From: kauai <kauai_diver_at_[hidden]>
> Subject: Re: [Boost-users] Re: Boost serialization and
> dependency nightmares...
> To: boost-users_at_[hidden]
>
> Robert,
>
> Thank you. My project requires both linux and Win32
> support. When I use this macro in win32 environment I
> get
> a compile time error. It generates a fairly long error
> which I can send you but here is the first few lines
> which
> are possibly the most important.
>
> Again it is fully compiling/linking/running in Linux.
>
>
> cl /nologo /W3 /MDd /Od /EHsc /RTC1 /GS /Gy /Zc:forScope
> /GR /Gd /TP /D_DEBUG /D
> WIN32 /D_CONSOLE /D_WINDOWS /DUNICODE /DQT_DLL
> /DQT_THREAD_SUPPORT
> /IW:\vob\abvsw\boost\1_32_0\win32\include\boost-1_32
> /Iroot\abcmn\ /c build-win32-debug\...\xyz.cpp /Fobui
> ld-win32-debug\...\xyz.obj xyz.cpp
> W:\vob\abvsw\boost\1_32_0\win32\include\boost-1_32\boost\
> serialization\split_free.hpp(55) : error C2780: 'void
> boost::archive::load(Archi
> ve &,T &)' : expects 2 arguments - 3 provided
> W:\vob\abvsw\boost\1_32_0\win32\include\boost-1_3
> 2\boost\archive\detail\iserializer.hpp(514) : see
> declaration of 'boost::archive
> ::load'
> W:\vob\abvsw\boost\1_32_0\win32\include\boost-1_3
> 2\boost\serialization\split_free.hpp(54) : while
> compiling
> class-template member
> function 'void
>
boost::serialization::free_loader<Archive,T>::invoke(Archive
> &,T
> &,const unsigned int)'
>
> When I #ifdef the BOOST_CLASS_EXPORT(ClassName) macros I
> compile/link/and run. Of course base class serialzation
> is
> disable for Win32 at the moment because of this.
>
> Thanks for any help,
> -K
>
> --- Robert Ramey <ramey_at_[hidden]> wrote:
> > This is addressed with the alternative
> BOOST_CLASS_EXPORT
> > method. its
> > described in the serialization documentation.
> >
> > Robert Ramey
> >
> > kauai wrote:
> > > Hi all,
> > >
> > > I have a container class that has a vector which
> > contains
> > > several other classes. My container class has a
> > serialize
> > > function that looks like this:
> > >
> > > friend class boost::serialization::access;
> > > template<class Archive> void serialize (Archive &ar,
> > const
> > > unsigned int version)
> > > {
> > > // save/load base class information
> > > ar &
> > BOOST_SERIALIZATION_BASE_OBJECT_NVP(MyBaseClass);
> > > ar.register_type(static_cast<SomeClass1*>(NULL));
> > > ar.register_type(static_cast<SomeClass2*>(NULL));
> > > ...
> > > ar & BOOST_SERIALIZATION_NVP(m_Vector); //
> > std::vector
> > > }
> > >
> > > Got everything working but now an issue has come up:
> > > Someone wants to add a new class but it is not part
> of
> > this
> > > package that is doing the serialzation. I want to
> > avoid
> > > what I call "dependency hell", is there a way for
> that
> > new
> > > class to get registered someplace other than in this
> > > function?
> > >
> > > Thanks for any help,
> > > Kauai
> > >
> > >
> > >
> > >
> > > Discover Yahoo!
> > > Stay in touch with email, IM, photo sharing and more.
> > Check it out!
> > > http://discover.yahoo.com/stayintouch.html
> >
> >
> >
> > _______________________________________________
> > Boost-users mailing list
> > Boost-users_at_[hidden]
> > http://lists.boost.org/mailman/listinfo.cgi/boost-users
> >
>
>
>
>
> __________________________________
> Do you Yahoo!?
> Yahoo! Mail - You care about security. So do we.
> http://promotions.yahoo.com/new_mail
>

                
Discover Yahoo!
Have fun online with music videos, cool games, IM and more. Check it out!
http://discover.yahoo.com/online.html


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net