Boost logo

Boost Users :

From: cheesy4poofs (cheesy4poofs_at_[hidden])
Date: 2006-01-31 12:01:26


I'm using Windows XP with Visual Studio 2003. I've compiled boost 1.33.1
successfully with bjam and installed the libs and DLLs into my environment.

I started playing with the serialization library. I created a win32 console
project and copied in the demo.cpp serialization program. It compiles and
runs just fine.

I then started added serialization to my own project and started running
into problem after problem. I've since commented out all my own code except
for the following:

I copied the gps_position class directly from demo.cpp into my project. At
the top of the file, I've included the following files:

#include <boost/serialization/type_info_implementation.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/serialization/base_object.hpp>
#include <boost/serialization/utility.hpp>

In my class Manager, I wrote the following method:

void Manager::save(const std::string & filename)
{
        boost::recursive_mutex::scoped_lock lock(_nodeMutex);

        std::ofstream outFile;
        outFile.open(filename.c_str(), std::ios::binary);
        boost::archive::text_oarchive archiveFile(outFile);

        // simple test
        const gps_position g;
        archiveFile << g;
        outFile.close();
}

Trying to compile, I get the following errors:

..\API\inc\boost\archive\detail\oserializer.hpp(131) : error C2027: use of
undefined type 'boost::serialization::extended_type_info_null<T>'
        with
        [
            T=gps_position
        ]
        ..\API\inc\boost\archive\detail\oserializer.hpp(131) : see reference
to class template instantiation
'boost::serialization::extended_type_info_null<T>' being compiled
        with
        [
            T=gps_position
        ]
        ..\API\inc\boost\archive\detail\oserializer.hpp(128) : while
compiling class-template member function 'bool
boost::archive::detail::oserializer<Archive,T>::is_polymorphic(void) const'
        with
        [
            Archive=boost::archive::text_oarchive,
            T=gps_position
        ]
        ..\API\inc\boost\archive\detail\oserializer.hpp(264) : see reference
to class template instantiation
'boost::archive::detail::oserializer<Archive,T>' being compiled
        with
        [
            Archive=boost::archive::text_oarchive,
            T=gps_position
        ]
.
.
.
*snip*

As far as my project settings, I'm compiling a win32 DLL, with the
Multithread Debug C++ standard library DLL. I have exceptions and RTTI
enabled. Basically the same settings I used for compiling demo.cpp.

If I comment out the "archiveFile << g;" line, it compiles fine. Any help
would be greatly appreciated!

Thank you,
Scott


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