[Boost-bugs] [Boost C++ Libraries] #11216: Wrong number of entries in std::vector<boost::tuple<double, double, double> >

Subject: [Boost-bugs] [Boost C++ Libraries] #11216: Wrong number of entries in std::vector<boost::tuple<double, double, double> >
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2015-04-21 09:05:09


#11216: Wrong number of entries in std::vector<boost::tuple<double, double, double>
>
--------------------------------------------+---------------------------
 Reporter: Ruediger Berlich <r.berlich@…> | Owner: ramey
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: serialization
  Version: Boost 1.58.0 | Severity: Regression
 Keywords: serialization tuple vector |
--------------------------------------------+---------------------------
 I have a class with a std::vector<boost::tuple<double, double, double> >,
 that is supposed to always have at least one entry, but may have more.
 Hence, in the default constructor, I initialize the std::vector with one
 entry. The class is also serializable. Up until Boost 1.57, a de-
 serialized object always had the correct number of entries in the vector.
 As of 1.58, I am getting one entry too much, which probably means that
 Boost.Serialization simply attaches entries to the vector of a default-
 constructed class, but doesn’t clear it first. This happens in C++11-Mode,
 both on Ubuntu 14.10 (gcc 4.9.1) as well as on MacOS X Yosemite . It DOES
 NOT happen with a std::vector<double> . Attached to this ticket is a full
 test case that replicates the problem in a simplified environment.

 For Boost 1.57 the program returns:

 t_vec.size() = 1 \\
 t_vec2.size() = 1 \\

 For Boost 1.58 the answer is

 t_vec.size() = 1 \\
 t_vec2.size() = 2 \\

 Best Regards, \\
 Beet

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/11216>
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