Re: [Boost-bugs] [Boost C++ Libraries] #3123: Support for serializing shared_ptr to const types

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #3123: Support for serializing shared_ptr to const types
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2009-07-22 15:42:03


#3123: Support for serializing shared_ptr to const types
---------------------------+------------------------------------------------
  Reporter: sohail | Owner: ramey
      Type: Bugs | Status: closed
 Milestone: Boost 1.40.0 | Component: serialization
   Version: Boost 1.39.0 | Severity: Regression
Resolution: invalid | Keywords:
---------------------------+------------------------------------------------
Changes (by ramey):

  * status: new => closed
  * resolution: => invalid

Comment:

 Looking at the diff, I would rather call this "serialization of shared_ptr
 to a const type".

 The subject if serialization of "const" members is addressed in general in
 the manual in the section
 Reference/SerializableConcept/ClassTypes/ClassMembers/constMembers.

 From the documentation

 "Saving const members to an archive requires no special considerations.
 Loading const members can be addressed by using a const_cast:


     ar & const_cast<T &>(t);

 Note that this violates the spirit and intention of the const keyword.
 const members are intialized when a class instance is constructed and not
 changed thereafter. However, this may be most appropriate in many cases.
 Ultimately, it comes down to the question about what const means in the
 context of serialization. "

 Basically, "const" means the member isn't meant to be changeable. It would
 be in appropriate for the serialization library (or any other library) to
 violate the explicitly stated intention - especially without calling
 attention to that fact. It the developer want's to override the "const"
 the special case of serialization, he has the option of using const_cast
 to implement and document this desire.

 If this used to work, it was an oversight which has since been corrected.

 Robert Ramey

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/3123#comment:1>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:00 UTC