Boost logo

Boost :

From: Pavel Vozenilek (pavel_vozenilek_at_[hidden])
Date: 2004-04-25 17:32:41

"Jeff Flinn" <TriumphSprint2000_at_[hidden]> wrote:

> While the current methods for Free Functions and Splitting save/load
> are certainly understandable and work. It would be nice to be able
> (partial)specialize the "serialize" function base on its IO type. It would
> also be nice to utilize enable_if to generate different code when the
> serialize function is instantiated for input/output archives. This would
> allow compile time constructs similar to mfc's runtime Ar.IsLoad().

template<typename Archive>
bool is_saving(const Archive& arch) {
    return boost::is_base_and_derived<boost::archive::basic_oarchive,

Can be used like:

template<typename Archive>
void serialize(Archive & ar, const unsigned int version) {
  ar & value_1;
  ar & value_n
  if (is_saving(ar)) {
  } else {
  ar & value_n+1;


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