Boost logo

Boost Users :

From: David Klein (dave_chp_at_[hidden])
Date: 2007-02-09 12:14:17


Mark Wyszomierski wrote:
> Hmm ok I split up the save() and load() functions so I can just
> serialize the individual members of these 3rd party classes. That
> works ok. The save() method is defined like:
>
> voidd save(Archive &ar, const unsigned int version) const
> {
> ar & m_3rdPartyClass.m_SomeInteger;
> ...
> }
>
> One of the data types though is MFC's CString - which is just like
> std:string, just a wrapper around a character array. The only way to
> get the contents of a CString as a char array is a function called
> GetBuffer() which returns a non-const char pointer to the internal
> array. My compiler does not seem to like this, as I guess the save()
> function is defined as const? Is this right, and if so, is there any
> way I can get around this one?
>
> ar & m_3rdPartyClass.m_SomeCString.GetBuffer(); // returns non
> const char* !!
>

I don't know how serialization for std::string is done, but it's
supported by
the library. Maybe you could create a temporary std::string from your
MFC string
and serialize that one instead? Though there may be a decrease in
performance
if you have a lot of strings to deal with.

--
Regards,
dave

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