Boost logo

Boost Users :

Subject: [Boost-users] Is it possible to use boost:serialization with Managed c++?
From: سیّد امین میرزایی (samdeath_at_[hidden])
Date: 2010-10-31 07:32:07


We have a native c++ class that is serialized perfectly using *
boost::serialization*.

Now we want to change some of its member fields to *property*, so we could
use them in *PropertyGrids*. When we changed the class definiction to *ref
class X*, we got a huge number of these compilation errors:

#1: error C2893: Failed to specialize function template
'boost::archive::text_oarchive
&boost::archive::detail::interface_oarchive<Archive>::operator <<(T &)'
d:\someAddress\someFile.cpp 58

#2: error C2784: 'std::basic_ostream<_Elem,_Traits> &std::operator
<<(std::basic_ostream<_Elem,_Traits> &,const std::_Smanip<_Arg> &)' : could
not deduce template argument for 'std::basic_ostream<_Elem,_Traits> &' from
'boost::archive::text_oarchive' d:\someAddress\someFile.cpp 58

We have a lot of tiny classes here, so it would be a pain to write a wrapper
for each of them!

Here is the sample class we used:

ref class gps_position2

{
public:
    template<class Archive>

    void serialize(Archive & ar, const unsigned int version)

    {
        ar & seconds;
    }

public:
    gps_position(){};
    gps_position(float s)

    {
        this->seconds = s;

    }

    property float seconds;
};

 And here is the main test code:

int main()

{
    std::ofstream ofs("out.txt");

    gps_position2 g(24.567f);

    // save data to archive

    {
        boost::archive::text_oarchive oa(ofs);

        // write class instance to archive
        oa << g;

    }
    // ................
    return 0;

}

Is it even possible to use *boost::serialization* with managed classes?

p.s. If we change the class usage code to this:

    ...

    gps_position2^ g = gcnew gps_position2(24.567f);

    ...

then we get only 1 error:

error C2027: use of undefined type 'boost::STATIC_ASSERTION_FAILURE<x>'
D:\path\to\Boost\boostw\boost\archive\detail\check.hpp 60



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