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
modifiers.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\typeof\modifiers.hpp
Girar
Efecto
Propiedad
Historial
// Copyright (C) 2004 Arkadiy Vertleyb // 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) #ifndef BOOST_TYPEOF_MODIFIERS_HPP_INCLUDED #define BOOST_TYPEOF_MODIFIERS_HPP_INCLUDED #include
#include
#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() // modifiers #define BOOST_TYPEOF_modifier_support(ID, Fun)\ template
struct encode_type_impl
\ {\ typedef\ typename boost::type_of::encode_type<\ typename boost::type_of::push_back<\ V\ , boost::mpl::size_t
>::type\ , T>::type\ type;\ };\ template
struct decode_type_impl
, Iter>\ {\ typedef boost::type_of::decode_type
d1;\ typedef Fun(typename d1::type) type;\ typedef typename d1::iter iter;\ } #define BOOST_TYPEOF_const_fun(T) const T #define BOOST_TYPEOF_volatile_fun(T) volatile T #define BOOST_TYPEOF_volatile_const_fun(T) volatile const T #define BOOST_TYPEOF_pointer_fun(T) T* #define BOOST_TYPEOF_reference_fun(T) T& #if defined(__BORLANDC__) && (__BORLANDC__ < 0x600) //Borland incorrectly handles T const, T const volatile and T volatile. //It drops the decoration no matter what, so we need to try to handle T* const etc. without loosing the top modifier. #define BOOST_TYPEOF_const_pointer_fun(T) T const * #define BOOST_TYPEOF_const_reference_fun(T) T const & #define BOOST_TYPEOF_volatile_pointer_fun(T) T volatile* #define BOOST_TYPEOF_volatile_reference_fun(T) T volatile& #define BOOST_TYPEOF_volatile_const_pointer_fun(T) T volatile const * #define BOOST_TYPEOF_volatile_const_reference_fun(T) T volatile const & #endif BOOST_TYPEOF_BEGIN_ENCODE_NS BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_const_fun); BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_volatile_fun); BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_volatile_const_fun); BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_pointer_fun); BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_reference_fun); #if defined(__BORLANDC__) && (__BORLANDC__ < 0x600) BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_const_pointer_fun); BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_const_reference_fun); BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_volatile_pointer_fun); BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_volatile_reference_fun); BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_volatile_const_pointer_fun); BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_volatile_const_reference_fun); #endif BOOST_TYPEOF_END_ENCODE_NS #undef BOOST_TYPEOF_modifier_support #undef BOOST_TYPEOF_const_fun #undef BOOST_TYPEOF_volatile_fun #undef BOOST_TYPEOF_volatile_const_fun #undef BOOST_TYPEOF_pointer_fun #undef BOOST_TYPEOF_reference_fun #if defined(__BORLANDC__) && (__BORLANDC__ < 0x600) #undef BOOST_TYPEOF_const_pointer_fun #undef BOOST_TYPEOF_const_reference_fun #undef BOOST_TYPEOF_volatile_pointer_fun #undef BOOST_TYPEOF_volatile_reference_fun #undef BOOST_TYPEOF_volatile_const_pointer_fun #undef BOOST_TYPEOF_volatile_const_reference_fun #endif // arrays #define BOOST_TYPEOF_array_support(ID, Qualifier)\ template
\ struct encode_type_impl
\ {\ typedef\ typename boost::type_of::encode_type<\ typename boost::type_of::push_back<\ typename boost::type_of::push_back<\ V\ , boost::mpl::size_t
>::type\ , boost::mpl::size_t
>::type\ , T>::type\ type;\ };\ template
\ struct decode_type_impl
, Iter>\ {\ enum{n = Iter::type::value};\ typedef boost::type_of::decode_type
d;\ typedef typename d::type Qualifier() type[n];\ typedef typename d::iter iter;\ } BOOST_TYPEOF_BEGIN_ENCODE_NS BOOST_TYPEOF_array_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_PP_EMPTY); BOOST_TYPEOF_array_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_PP_IDENTITY(const)); BOOST_TYPEOF_array_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_PP_IDENTITY(volatile)); BOOST_TYPEOF_array_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_PP_IDENTITY(volatile const)); BOOST_TYPEOF_END_ENCODE_NS #undef BOOST_TYPEOF_array_support #endif//BOOST_TYPEOF_MODIFIERS_HPP_INCLUDED
modifiers.hpp
Dirección de la página
Dirección del archivo
Anterior
7/24
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.