has_rebind.hpp

来自「CGAL is a collaborative effort of severa」· HPP 代码 · 共 100 行

HPP
100
字号
#ifndef BOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED#define BOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED// Copyright Aleksey Gurtovoy 2002-2004//// 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/mpl for documentation.// $Source: /CVSROOT/CGAL/Packages/Boost/include/boost/mpl/aux_/has_rebind.hpp,v $// $Date: 2004/11/20 10:39:33 $// $Revision: 1.1.1.2 $#include <boost/mpl/aux_/config/msvc.hpp>#include <boost/mpl/aux_/config/intel.hpp>#include <boost/mpl/aux_/config/workaround.hpp>#if BOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(BOOST_INTEL_CXX_VERSION)#   include <boost/mpl/has_xxx.hpp>#elif BOOST_WORKAROUND(BOOST_MSVC, <= 1200)#   include <boost/mpl/has_xxx.hpp>#   include <boost/mpl/if.hpp>#   include <boost/mpl/bool.hpp>#   include <boost/mpl/aux_/msvc_is_class.hpp>#elif BOOST_WORKAROUND(__BORLANDC__, < 0x600)#   include <boost/mpl/if.hpp>#   include <boost/mpl/bool.hpp>#   include <boost/mpl/aux_/yes_no.hpp>#   include <boost/mpl/aux_/config/static_constant.hpp>#   include <boost/type_traits/is_class.hpp>#else#   include <boost/mpl/aux_/type_wrapper.hpp>#   include <boost/mpl/aux_/yes_no.hpp>#   include <boost/mpl/aux_/config/static_constant.hpp>#endifnamespace boost { namespace mpl { namespace aux {#if BOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(BOOST_INTEL_CXX_VERSION)BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_rebind, rebind, false)#elif BOOST_WORKAROUND(BOOST_MSVC, <= 1200)BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_rebind_impl, rebind, false)template< typename T >struct has_rebind    : if_<           msvc_is_class<T>        , has_rebind_impl<T>        , bool_<false>        >::type{};#else // the resttemplate< typename T > struct has_rebind_tag {};no_tag operator|(has_rebind_tag<int>, void const volatile*);#   if !BOOST_WORKAROUND(__BORLANDC__, < 0x600)template< typename T >struct has_rebind{    static has_rebind_tag<T>* get();    BOOST_STATIC_CONSTANT(bool, value =           sizeof(has_rebind_tag<int>() | get()) == sizeof(yes_tag)        );};#   else // __BORLANDC__template< typename T >struct has_rebind_impl{    static T* get();    BOOST_STATIC_CONSTANT(bool, value =           sizeof(has_rebind_tag<int>() | get()) == sizeof(yes_tag)        );};template< typename T >struct has_rebind    : if_<           is_class<T>        , has_rebind_impl<T>        , bool_<false>        >::type{};#   endif // __BORLANDC__#endif}}}#endif // BOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?