update boost
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
|
||||
// serialization.hpp: interface for serialization system.
|
||||
|
||||
// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
|
||||
// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
|
||||
// Use, modification and distribution is subject to the Boost Software
|
||||
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
@@ -24,7 +24,7 @@
|
||||
// See http://www.boost.org for updates, documentation, and revision history.
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// public interface to serialization.
|
||||
// public interface to serialization.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// layer 0 - intrusive verison
|
||||
@@ -45,15 +45,6 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// layer 2 - default implementation of non-intrusive serialization.
|
||||
//
|
||||
// note the usage of function overloading to compensate that C++ does not
|
||||
// currently support Partial Template Specialization for function templates
|
||||
// We have declared the version number as "const unsigned long".
|
||||
// Overriding templates for specific data types should declare the version
|
||||
// number as "const unsigned int". Template matching will first be applied
|
||||
// to functions with the same version types - that is the overloads.
|
||||
// If there is no declared function prototype that matches, the second argument
|
||||
// will be converted to "const unsigned long" and a match will be made with
|
||||
// one of the default template functions below.
|
||||
|
||||
namespace boost {
|
||||
namespace serialization {
|
||||
@@ -71,8 +62,8 @@ inline void serialize(
|
||||
// save data required for construction
|
||||
template<class Archive, class T>
|
||||
inline void save_construct_data(
|
||||
Archive & /*ar*/,
|
||||
const T * /*t*/,
|
||||
Archive & /*ar*/,
|
||||
const T * /*t*/,
|
||||
const unsigned int /*file_version */
|
||||
){
|
||||
// default is to save no data because default constructor
|
||||
@@ -82,8 +73,8 @@ inline void save_construct_data(
|
||||
// load data required for construction and invoke constructor in place
|
||||
template<class Archive, class T>
|
||||
inline void load_construct_data(
|
||||
Archive & /*ar*/,
|
||||
T * t,
|
||||
Archive & /*ar*/,
|
||||
T * t,
|
||||
const unsigned int /*file_version*/
|
||||
){
|
||||
// default just uses the default constructor. going
|
||||
@@ -98,10 +89,10 @@ inline void load_construct_data(
|
||||
//
|
||||
// on compilers which don't implement ADL. only the current namespace
|
||||
// i.e. boost::serialization will be searched.
|
||||
//
|
||||
//
|
||||
// on compilers which DO implement ADL
|
||||
// serialize overrides can be in any of the following
|
||||
//
|
||||
//
|
||||
// 1) same namepace as Archive
|
||||
// 2) same namespace as T
|
||||
// 3) boost::serialization
|
||||
@@ -110,37 +101,29 @@ inline void load_construct_data(
|
||||
|
||||
template<class Archive, class T>
|
||||
inline void serialize_adl(
|
||||
Archive & ar,
|
||||
T & t,
|
||||
Archive & ar,
|
||||
T & t,
|
||||
const unsigned int file_version
|
||||
){
|
||||
// note usage of function overloading to delay final resolution
|
||||
// until the point of instantiation. This works around the two-phase
|
||||
// lookup "feature" which inhibits redefintion of a default function
|
||||
// template implementation. Due to Robert Ramey
|
||||
//
|
||||
// Note that this trick generates problems for compiles which don't support
|
||||
// PFTO, suppress it here. As far as we know, there are no compilers
|
||||
// which fail to support PFTO while supporting two-phase lookup.
|
||||
const version_type v(file_version);
|
||||
serialize(ar, t, v);
|
||||
}
|
||||
|
||||
template<class Archive, class T>
|
||||
inline void save_construct_data_adl(
|
||||
Archive & ar,
|
||||
const T * t,
|
||||
Archive & ar,
|
||||
const T * t,
|
||||
const unsigned int file_version
|
||||
){
|
||||
// see above
|
||||
|
||||
const version_type v(file_version);
|
||||
save_construct_data(ar, t, v);
|
||||
}
|
||||
|
||||
template<class Archive, class T>
|
||||
inline void load_construct_data_adl(
|
||||
Archive & ar,
|
||||
T * t,
|
||||
Archive & ar,
|
||||
T * t,
|
||||
const unsigned int file_version
|
||||
){
|
||||
// see above comment
|
||||
|
||||
Reference in New Issue
Block a user