$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Joaquin M Lopez Munoz (joaquin_at_[hidden])
Date: 2004-04-12 04:25:20
Robert Ramey <ramey <at> rrsd.com> writes:
> 
> Fellow boosters,
> 
> I just uploaded version #18 of the proposed boost serialization library to
> the files section.  It can also be downloaded at www.rrsd.com
> 
> It contains improvements in code/file/namespace organization, better
> documentation on how its implemented, and a number of arcane bug fixes.
> 
I think I detected a minor bug in collections_load_imp.hpp.
The operator() code for archive_input_seq reads:
inline void operator()(Archive &ar, Container &s)
{
    typedef BOOST_DEDUCED_TYPENAME Container::value_type type;
    stack_allocate<type> t;
    load_construct_data(ar, t.address(), 0U);
    ar >> make_nvp("item", t.reference());
    s.push_back(t.reference());
    t.address()->~type(); // undo load_construct_data above
}
This is AFAICS not exception-safe: if say s.push_back()
throws, the dtor for the stack-allocated variable t won't
be called. The same problem in similar code snippets
through this file. Apologies if my perception is wrong.
JoaquÃn M López Muñoz
Telefónica, Investigación y Desarrollo