x
Yes
No
Do you want to visit DriveHQ English website?
首页
产品服务
价格
免费试用
下载客户端
关于我们
云文件服务
|
云备份服务
|
FTP服务
|
企业邮箱服务
|
网站托管
|
客户端软件
云文件服务
云备份服务
FTP服务
企业级邮箱服务
网站托管
客户端软件
modifiers.hpp - Hosted on DriveHQ Cloud IT Platform
返回上层目录
上传
下载
共享
发布
新建文件夹
新建文件
复制
剪切
删除
粘贴
评论
升级服务
路径: \\game3dprogramming\materials\GameFactory\GameFactoryDemo\references\boost_1_35_0\boost\typeof\modifiers.hpp
旋转
特效
属性
历史版本
// 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
网页地址
文件地址
上一页
7/24
下一页
下载
( 4 KB )
Comments
Total ratings:
0
Average rating:
无评论
of 10
Would you like to comment?
Join now
, or
Logon
if you are already a member.