x
Yes
No
Do you want to visit DriveHQ English website?
首页
产品服务
价格
免费试用
下载客户端
关于我们
云文件服务
|
云备份服务
|
FTP服务
|
企业邮箱服务
|
网站托管
|
客户端软件
云文件服务
云备份服务
FTP服务
企业级邮箱服务
网站托管
客户端软件
mpl.hpp - Hosted on DriveHQ Cloud IT Platform
返回上层目录
上传
下载
共享
发布
新建文件夹
新建文件
复制
剪切
删除
粘贴
评论
升级服务
路径: \\game3dprogramming\materials\GameFactory\GameFactoryDemo\references\boost_1_35_0\boost\intrusive\detail\mpl.hpp
旋转
特效
属性
历史版本
///////////////////////////////////////////////////////////////////////////// // // (C) Copyright Ion Gaztanaga 2006-2007 // // 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/intrusive for documentation. // ///////////////////////////////////////////////////////////////////////////// #ifndef BOOST_INTRUSIVE_DETAIL_MPL_HPP #define BOOST_INTRUSIVE_DETAIL_MPL_HPP namespace boost { namespace intrusive { namespace detail { typedef char one; struct two {one _[2];}; template< bool C_ > struct bool_ { static const bool value = C_; }; typedef bool_
true_; typedef bool_
false_; typedef true_ true_type; typedef false_ false_type; typedef char yes_type; struct no_type { char padding[8]; }; template
struct enable_if_c { typedef T type; }; template
struct enable_if_c
{}; template
struct enable_if : public enable_if_c
{}; template
class is_convertible { typedef char true_t; class false_t { char dummy[2]; }; static true_t dispatch(U); static false_t dispatch(...); static T trigger(); public: static const bool value = sizeof(dispatch(trigger())) == sizeof(true_t); }; template< bool C , typename T1 , typename T2 > struct if_c { typedef T1 type; }; template< typename T1 , typename T2 > struct if_c
{ typedef T2 type; }; template< typename C , typename T1 , typename T2 > struct if_ { typedef typename if_c<0 != C::value, T1, T2>::type type; }; template< bool C , typename F1 , typename F2 > struct eval_if_c : if_c
::type {}; template< typename C , typename T1 , typename T2 > struct eval_if : if_
::type {}; // identity is an extension: it is not part of the standard. template
struct identity { typedef T type; }; #if defined(BOOST_MSVC) || defined(__BORLANDC_) #define BOOST_INTRUSIVE_TT_DECL __cdecl #else #define BOOST_INTRUSIVE_TT_DECL #endif #if defined(_MSC_EXTENSIONS) && !defined(__BORLAND__) #define BOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS #endif no_type BOOST_INTRUSIVE_TT_DECL is_function_ptr_tester(...); template
yes_type is_function_ptr_tester(R (*)()); template
yes_type is_function_ptr_tester(R (*)( ...)); #ifdef BOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS template
yes_type is_function_ptr_tester(R (__stdcall*)()); template
yes_type is_function_ptr_tester(R (__stdcall*)( ...)); template
yes_type is_function_ptr_tester(R (__fastcall*)()); template
yes_type is_function_ptr_tester(R (__fastcall*)( ...)); template
yes_type is_function_ptr_tester(R (__cdecl*)()); template
yes_type is_function_ptr_tester(R (__cdecl*)( ...)); #endif template
yes_type is_function_ptr_tester(R (*)( T0)); template
yes_type is_function_ptr_tester(R (*)( T0 ...)); #ifdef BOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS template
yes_type is_function_ptr_tester(R (__stdcall*)( T0)); template
yes_type is_function_ptr_tester(R (__stdcall*)( T0 ...)); template
yes_type is_function_ptr_tester(R (__fastcall*)( T0)); template
yes_type is_function_ptr_tester(R (__fastcall*)( T0 ...)); template
yes_type is_function_ptr_tester(R (__cdecl*)( T0)); #endif template
yes_type is_function_ptr_tester(R (*)( T0 , T1)); #ifdef BOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS template
yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1)); template
yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1)); template
yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1)); #endif template
struct is_unary_or_binary_function_impl { static T* t; static const bool value = sizeof(is_function_ptr_tester(t)) == sizeof(yes_type); }; template
struct is_unary_or_binary_function_impl
{ static const bool value = false; }; template
struct is_unary_or_binary_function { static const bool value = is_unary_or_binary_function_impl
::value; }; //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 { static const std::size_t value = A < S ? A : S; }; template< typename T > struct alignment_of { static const std::size_t value = alignment_logic < sizeof(alignment_of_hack
) - sizeof(T) , sizeof(T) >::value; }; 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
struct add_const { typedef const T type; }; template
struct remove_const { typedef T type; }; template
struct remove_const
{ typedef T type; }; template
struct remove_reference { typedef T type; }; template
struct remove_reference
{ typedef T type; }; template
class is_empty_class { template
struct empty_helper_t1 : public T { empty_helper_t1(); int i[256]; }; struct empty_helper_t2 { int i[256]; }; public: static const bool value = sizeof(empty_helper_t1
) == sizeof(empty_helper_t2); }; } //namespace detail } //namespace intrusive } //namespace boost #endif //BOOST_INTRUSIVE_DETAIL_MPL_HPP
mpl.hpp
网页地址
文件地址
上一页
9/18
下一页
下载
( 6 KB )
Comments
Total ratings:
0
Average rating:
无评论
of 10
Would you like to comment?
Join now
, or
Logon
if you are already a member.