Boost logo

Boost :

From: Joaquin M Lopez Munoz (joaquin_at_[hidden])
Date: 2004-04-12 04:25:20

Robert Ramey <ramey <at>> writes:

> Fellow boosters,
> I just uploaded version #18 of the proposed boost serialization library to
> the files section. It can also be downloaded at
> 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());
    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

Boost list run by bdawes at, gregod at, cpdaniel at, john at