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