Chris@16: // Copyright David Abrahams 2004. Distributed under the Boost Chris@16: // Software License, Version 1.0. (See accompanying Chris@16: // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Chris@16: #ifndef ENABLE_IF_DWA2004722_HPP Chris@16: # define ENABLE_IF_DWA2004722_HPP Chris@16: Chris@16: # include Chris@16: # include Chris@16: Chris@16: # if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) Chris@16: # include Chris@16: Chris@16: namespace boost { namespace python { namespace detail { Chris@16: Chris@16: template struct always_void { typedef void type; }; Chris@16: Chris@16: template Chris@16: struct enable_if_arg Chris@16: { Chris@16: typedef typename mpl::if_::type type; Chris@16: }; Chris@16: Chris@16: template Chris@16: struct disable_if_arg Chris@16: { Chris@16: typedef typename mpl::if_::type type; Chris@16: }; Chris@16: Chris@16: template ::type> Chris@16: struct enable_if_ret Chris@16: { Chris@16: typedef typename mpl::if_::type type; Chris@16: }; Chris@16: Chris@16: template ::type> Chris@16: struct disable_if_ret Chris@16: { Chris@16: typedef typename mpl::if_::type type; Chris@16: }; Chris@16: Chris@16: }}} // namespace boost::python::detail Chris@16: Chris@16: # elif !defined(BOOST_NO_SFINAE) Chris@16: # include Chris@16: Chris@16: namespace boost { namespace python { namespace detail { Chris@16: Chris@16: template Chris@16: struct enable_if_arg Chris@16: : enable_if Chris@16: {}; Chris@16: Chris@16: template Chris@16: struct disable_if_arg Chris@16: : disable_if Chris@16: {}; Chris@16: Chris@16: template Chris@16: struct enable_if_ret Chris@16: : enable_if Chris@16: {}; Chris@16: Chris@16: template Chris@16: struct disable_if_ret Chris@16: : disable_if Chris@16: {}; Chris@16: Chris@16: }}} // namespace boost::python::detail Chris@16: Chris@16: # endif Chris@16: Chris@16: #endif // ENABLE_IF_DWA2004722_HPP