x
Yes
No
Do you want to visit DriveHQ English website?
Inicio
Características
Precios
Prueba gratuita
Software cliente
Acerca de nosotros
Servidor de archivos
|
Solución de copias de seguridad
|
Servidor FTP
|
Servidor de correo electrónico
|
Alojamiento web
|
Software cliente
Servidor de archivos
Solución de copia de seguridad
Servidor FTP
Servidor de correo electrónico
Alojamiento web
Software cliente
iarchive.hpp - Hosted on DriveHQ Cloud IT Platform
Arriba
Subir
Descargar
Compartir
Publicar
Nueva carpeta
Nuevo archivo
Copiar
Cortar
Eliminar
Pegar
Clasificación
Actualizar
Ruta de la carpeta: \\game3dprogramming\materials\GameFactory\GameFactoryDemo\references\boost_1_35_0\boost\archive\array\iarchive.hpp
Girar
Efecto
Propiedad
Historial
#ifndef BOOST_ARCHIVE_ARRAY_IARCHIVE_HPP #define BOOST_ARCHIVE_ARRAY_IARCHIVE_HPP // (C) Copyright 2005 Matthias Troyer and Dave Abrahams // 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) #include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
namespace boost { namespace archive { namespace array { // To conveniently array-optimize an input archive X: // // * Derive it from iarchive
, where Impl is an // archive implementation base class from // Boost.Serialization // // * add a member function template that implements the // procedure for serializing arrays of T (for appropriate T) // // template
// load_array(serialization::array
&, unsigned int) // // * add a unary MPL lambda expression member called // use_array_optimization whose result is convertible to // mpl::true_ iff array elements of type T can be serialized // with the load_array member function, and to mpl::false_ if // the unoptimized procedure must be used. template
class iarchive : public archive::detail::common_iarchive
{ typedef archive::detail::common_iarchive
Base; public: iarchive(unsigned int flags) : archive::detail::common_iarchive
(flags) {} // save_override for std::vector and serialization::array dispatches to // save_optimized with an additional argument. // // If that argument is of type mpl::true_, an optimized serialization is provided // If it is false, we just forward to the default serialization in the base class //the default version dispatches to the base class template
void load_optimized(T &t, unsigned int version, mpl::false_) { Base::load_override(t, version); } // the optimized implementation for vector uses serialization::array // template
// void load_optimized( // std::vector
&t, unsigned int version, mpl::true_) // { // t.clear(); // // retrieve number of elements // serialization::collection_size_type count; // *this->This() >> BOOST_SERIALIZATION_NVP(count); // t.resize(count); // if (!t.empty()) // * this->This() >> serialization::make_array(serialization::detail::get_data(t),t.size()); // } // the optimized implementation for serialization::array uses save_array template
void load_optimized( serialization::array
&t, unsigned int version, mpl::true_) { this->This()->load_array(t,version); } // to load a vector: // if the value type is trivially constructable or an optimized array save exists, // then we can use the optimized version // template
// void load_override(std::vector
&x, unsigned int version) // { // typedef typename mpl::and_< // mpl::not_
>, // mpl::apply1< // BOOST_DEDUCED_TYPENAME Archive::use_array_optimization // , ValueType> // >::type use_optimized; // load_optimized(x,version, use_optimized() ); // } // dispatch loading of arrays to the optimized version where supported template
void load_override(serialization::array
const& x, unsigned int version) { typedef typename mpl::apply1< BOOST_DEDUCED_TYPENAME Archive::use_array_optimization , ValueType >::type use_optimized; load_optimized(const_cast
&>(x),version,use_optimized()); } // Load everything else in the usual way, forwarding on to the base class template
void load_override(T & x, unsigned BOOST_PFTO int version) { Base::load_override(x, static_cast
(version)); } }; } } } // end namespace boost::archive::array #endif // BOOST_ARCHIVE_ARRAY_OARCHIVE_HPP
iarchive.hpp
Dirección de la página
Dirección del archivo
Anterior 1/2
Siguiente
Descargar
( 4 KB )
Comments
Total ratings:
0
Average rating:
No clasificado
of 10
Would you like to comment?
Join now
, or
Logon
if you are already a member.