Boost logo

Boost Users :

Subject: [Boost-users] [serialization] problem with free funciton splitting
From: Jonathan (Jonathan.Klein_at_[hidden])
Date: 2011-10-08 07:06:43


Hi, i have a code like this:

//LightSetup
template<class Archive> void save(Archive &a, const Mrl::LightSetup&
LightSetup, unsigned int version)
{
        unsigned int Count=LightSetup.NumLights();
        a & serialization::make_nvp("Count", Count);

        for(unsigned int i=0; i<Count; ++i)
        {
                a & serialization::make_nvp("Light", LightSetup[i]);
        }
}

template<class Archive> void load(Archive &a, Mrl::LightSetup&
LightSetup, unsigned int version)
{
        unsigned int Count;
        a & serialization::make_nvp("Count", Count);

        LightSetup=Mrl::LightSetup();//clear everything

        for(unsigned int i=0; i<Count; ++i)
        {
                Light* NewLight=0;
                a & serialization::make_nvp("Light", NewLight):
                LightSetup.Add(Light);
        }
}

namespace boost { namespace serialization {
template<class Archive>
inline void serialize(
    Archive & ar,
    Mrl::LightSetup & t,
    const unsigned int file_version
){
    split_free(ar, t, file_version);
}
}}

//BOOST_SERIALIZATION_SPLIT_FREE(Mrl::LightSetup)

(I tried both version, the makro and the serialize implementations, both
give me the same error).

The compiler says:
boost\boost/serialization/split_free.hpp(45): error C2664:
'boost::serialization::save': Konvertierung des Parameters 2 von 'const
Mrl::LightSetup' in 'const boost_132::detail::shared_count &' nicht möglich

(converting parameter 2 not possible).

I have no idea what this shared_count is, so I don't know, what do do.

King regards

Jonathan Klein


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