Boost logo

Boost Users :

Subject: Re: [Boost-users] [serialization] serialization of an ifstream/ofstream class member
From: Krzysztof Czainski (1czajnik_at_[hidden])
Date: 2014-03-28 10:31:17


{reordered the message chronologically}

2014-03-28 15:06 GMT+01:00 Pablo Madoery <madoerypablo_at_[hidden]>:

> On Fri, Mar 28, 2014 at 10:51 AM, Nat Goodspeed <nat_at_[hidden]> wrote:
>
>> On Fri, Mar 28, 2014 at 9:09 AM, Pablo Madoery <madoerypablo_at_[hidden]>
>> wrote:
>>
>> > string name_;
>> > ifstream file_;
>> >
>> > friend class boost::serialization::access;
>> > template<class Archive>
>> > void serialize(Archive & ar, const unsigned int version)
>> > {
>> > ar & name_;
>> > ar & file_;
>> > }
>> >
>> > when I try to serialize it throw compilation error :
>> > error: 'struct std::basic_ifstream<char>' has no member named
>> 'serialize'.
>> >
>> > Is there a specific header i must include ?
>>
>> May I ask what you intend to accomplish? A frequent use case for
>> serializing memory data is to write it to the local filesystem.
>> Presumably your ifstream represents a file that already exists on the
>> filesystem. Maybe you want to record the file's name? Perhaps you want
>> to record the current offset within that file? If so, I would
>> serialize those things specifically.
>>
>

> That's what i was thinking about.
> I Have a file in the filesystem that i am reading and I would like to
> record the position I stop reading before I record the object that reads
> the file, so when I de-serialize that object I could use it and continue
> reading the same file in the recorded position.
> How Do you think i can deal with this situation ?
> Thank you
>

Hint: how would you write a copy constructor for your class?

HTH,
Kris



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