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
ref.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\ref.hpp
Girar
Efecto
Propiedad
Historial
#ifndef BOOST_REF_HPP_INCLUDED #define BOOST_REF_HPP_INCLUDED // MS compatible compilers support #pragma once #if defined(_MSC_VER) && (_MSC_VER >= 1020) # pragma once #endif #include
#include
#include
#include
// // ref.hpp - ref/cref, useful helper functions // // Copyright (C) 1999, 2000 Jaakko J�rvi (jaakko.jarvi@cs.utu.fi) // Copyright (C) 2001, 2002 Peter Dimov // Copyright (C) 2002 David Abrahams // // Distributed under 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) // // See http://www.boost.org/libs/bind/ref.html for documentation. // namespace boost { template
class reference_wrapper { public: typedef T type; #if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, < 1300 ) explicit reference_wrapper(T& t): t_(&t) {} #else explicit reference_wrapper(T& t): t_(boost::addressof(t)) {} #endif operator T& () const { return *t_; } T& get() const { return *t_; } T* get_pointer() const { return t_; } private: T* t_; }; # if defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x581) ) # define BOOST_REF_CONST # else # define BOOST_REF_CONST const # endif template
inline reference_wrapper
BOOST_REF_CONST ref(T & t) { return reference_wrapper
(t); } template
inline reference_wrapper
BOOST_REF_CONST cref(T const & t) { return reference_wrapper
(t); } # undef BOOST_REF_CONST # ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION template
class is_reference_wrapper : public mpl::false_ { }; template
class unwrap_reference { public: typedef T type; }; # define AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(X) \ template
\ class is_reference_wrapper< X > \ : public mpl::true_ \ { \ }; \ \ template
\ class unwrap_reference< X > \ { \ public: \ typedef T type; \ }; \ /**/ AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper
) #if !defined(BOOST_NO_CV_SPECIALIZATIONS) AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper
const) AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper
volatile) AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper
const volatile) #endif # undef AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF # else // no partial specialization } // namespace boost #include
namespace boost { namespace detail { typedef char (&yes_reference_wrapper_t)[1]; typedef char (&no_reference_wrapper_t)[2]; no_reference_wrapper_t is_reference_wrapper_test(...); template
yes_reference_wrapper_t is_reference_wrapper_test(type< reference_wrapper
>); template
struct reference_unwrapper { template
struct apply { typedef T type; }; }; template<> struct reference_unwrapper
{ template
struct apply { typedef typename T::type type; }; }; } template
class is_reference_wrapper { public: BOOST_STATIC_CONSTANT( bool, value = ( sizeof(detail::is_reference_wrapper_test(type
())) == sizeof(detail::yes_reference_wrapper_t))); typedef ::boost::mpl::bool_
type; }; template
class unwrap_reference : public detail::reference_unwrapper< is_reference_wrapper
::value >::template apply
{}; # endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION } // namespace boost #endif // #ifndef BOOST_REF_HPP_INCLUDED
ref.hpp
Dirección de la página
Dirección del archivo
Anterior
81/113
Siguiente
Descargar
( 3 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.