Boost logo

Boost Users :

From: kauai (kauai_diver_at_[hidden])
Date: 2005-05-09 16:07:43


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


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