enable_if.hpp

来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 73 行

HPP
73
字号
// Copyright David Abrahams 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)#ifndef ENABLE_IF_DWA2004722_HPP# define ENABLE_IF_DWA2004722_HPP# include <boost/python/detail/sfinae.hpp># include <boost/detail/workaround.hpp># if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)#  include <boost/mpl/if.hpp>namespace boost { namespace python { namespace detail { template <class T> struct always_void { typedef void type; };template <class C, class T = int>struct enable_if_arg{    typedef typename mpl::if_<C,T,int&>::type type;};             template <class C, class T = int>struct disable_if_arg{    typedef typename mpl::if_<C,int&,T>::type type;};             template <class C, class T = typename always_void<C>::type>struct enable_if_ret{    typedef typename mpl::if_<C,T,int[2]>::type type;};             template <class C, class T = typename always_void<C>::type>struct disable_if_ret{    typedef typename mpl::if_<C,int[2],T>::type type;};             }}} // namespace boost::python::detail# elif !defined(BOOST_NO_SFINAE)#  include <boost/utility/enable_if.hpp>namespace boost { namespace python { namespace detail { template <class C, class T = int>struct enable_if_arg  : enable_if<C,T>{};             template <class C, class T = int>struct disable_if_arg  : disable_if<C,T>{};             template <class C, class T = void>struct enable_if_ret  : enable_if<C,T>{};             template <class C, class T = void>struct disable_if_ret  : disable_if<C,T>{};             }}} // namespace boost::python::detail# endif#endif // ENABLE_IF_DWA2004722_HPP

⌨️ 快捷键说明

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