x
Yes
No
Do you want to visit DriveHQ English website?
首页
产品服务
价格
免费试用
下载客户端
关于我们
云文件服务
|
云备份服务
|
FTP服务
|
企业邮箱服务
|
网站托管
|
客户端软件
云文件服务
云备份服务
FTP服务
企业级邮箱服务
网站托管
客户端软件
type_traits.hpp - Hosted on DriveHQ Cloud IT Platform
返回上层目录
上传
下载
共享
发布
新建文件夹
新建文件
复制
剪切
删除
粘贴
评论
升级服务
路径: \\game3dprogramming\materials\GameFactory\GameFactoryDemo\references\boost_1_35_0\boost\interprocess\detail\type_traits.hpp
旋转
特效
属性
历史版本
////////////////////////////////////////////////////////////////////////////// // (C) Copyright John Maddock 2000. // (C) Copyright Ion Gaztanaga 2005-2008. // // 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/interprocess for documentation. // // The alignment_of implementation comes from John Maddock's boost::alignment_of code // ////////////////////////////////////////////////////////////////////////////// #ifndef BOOST_INTERPROCESS_DETAIL_TYPE_TRAITS_HPP #define BOOST_INTERPROCESS_DETAIL_TYPE_TRAITS_HPP #if (defined _MSC_VER) && (_MSC_VER >= 1200) # pragma once #endif #include
namespace boost { namespace interprocess { namespace detail { struct nat{}; //boost::alignment_of yields to 10K lines of preprocessed code, so we //need an alternative template
struct alignment_of; template
struct alignment_of_hack { char c; T t; alignment_of_hack(); }; template
struct alignment_logic { enum{ value = A < S ? A : S }; }; template< typename T > struct alignment_of { enum{ value = alignment_logic < sizeof(alignment_of_hack
) - sizeof(T) , sizeof(T)>::value }; }; //This is not standard, but should work with all compilers union max_align { char char_; short short_; int int_; long long_; #ifdef BOOST_HAS_LONG_LONG long long long_long_; #endif float float_; double double_; long double long_double_; void * void_ptr_; }; template
struct remove_reference { typedef T type; }; template
struct remove_reference
{ typedef T type; }; template
struct is_reference { enum { value = false }; }; template
struct is_reference
{ enum { value = true }; }; template
struct is_pointer { enum { value = false }; }; template
struct is_pointer
{ enum { value = true }; }; template
struct add_reference { typedef T& type; }; template
struct add_reference
{ typedef T& type; }; template<> struct add_reference
{ typedef nat& type; }; template<> struct add_reference
{ typedef const nat& type; }; template
struct is_same { typedef char yes_type; struct no_type { char padding[8]; }; template
static yes_type is_same_tester(V*, V*); static no_type is_same_tester(...); static T *t; static U *u; static const bool value = sizeof(yes_type) == sizeof(is_same_tester(t,u)); }; /* template
typename T, template
typename U> struct is_same { typedef char yes_type; struct no_type { char padding[8]; }; template
typename V> static yes_type is_same_tester(V
*, V
*); static no_type is_same_tester(...); static T
*t; static U
*u; static const bool value = sizeof(yes_type) == sizeof(is_same_tester(t,u)); };*/ /* template< typename T > struct is_pointer_impl { static const bool value = (::boost::type_traits::ice_and< ::boost::detail::is_pointer_helper
::type>::value , ::boost::type_traits::ice_not< ::boost::is_member_pointer
::value >::value >::value) ); };*/ } // namespace detail } //namespace interprocess { } //namespace boost { #endif //#ifndef BOOST_INTERPROCESS_DETAIL_TYPE_TRAITS_HPP #include
type_traits.hpp
网页地址
文件地址
上一页
25/29
下一页
下载
( 3 KB )
Comments
Total ratings:
0
Average rating:
无评论
of 10
Would you like to comment?
Join now
, or
Logon
if you are already a member.