Re: [Boost-bugs] [Boost C++ Libraries] #11245: Deserialization with private constructor works in 1.57 not in 1.58

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #11245: Deserialization with private constructor works in 1.57 not in 1.58
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2015-05-20 14:43:46


#11245: Deserialization with private constructor works in 1.57 not in 1.58
-------------------------------+---------------------------
  Reporter: Thomas Aho | Owner: ramey
      Type: Bugs | Status: new
 Milestone: To Be Determined | Component: serialization
   Version: Boost 1.58.0 | Severity: Problem
Resolution: | Keywords:
-------------------------------+---------------------------

Comment (by anonymous):

 Note that in the version in the develop branch, I altered the
 implementation so that it only generates code actually used. This fixes
 the problem on my Clang, GCC compilers. So I believe the problem is
 "addressed". However, it does leave the confusion that occurs with a
 private ctor. That is, the error message refers to a private ctor which
 is a little misleading.

 Note that the issue of loading type T with a private default cort or not
 default constructible are related. That is the former implies the latter.
 This seems obvious in retrospect but certainly got me confused.

 I'm also thinking that loading a vector<T> where T is not default
 constructible should probably be called as a compile time error even
 though it could pass at runtime using the "fill-in" idea above.

 Soooooo, all in all, I think that the deserialization a vector whose type
 is not default constructible should be considered an error even though
 previously it was OK.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/11245#comment:5>
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:18 UTC