Mercurial > hg > vamp-build-and-test
view DEPENDENCIES/generic/include/boost/python/other.hpp @ 40:a7005ff33d3c
OS/X build fixes
author | Chris Cannam |
---|---|
date | Thu, 07 Aug 2014 08:17:36 +0100 |
parents | 2665513ce2d3 |
children |
line wrap: on
line source
#ifndef OTHER_DWA20020601_HPP # define OTHER_DWA20020601_HPP # include <boost/python/detail/prefix.hpp> // Copyright David Abrahams 2002. // 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) # if _MSC_VER+0 >= 1020 # pragma once # endif # include <boost/config.hpp> namespace boost { namespace python { template<class T> struct other { typedef T type; }; # ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION namespace detail { template<typename T> class is_other { public: BOOST_STATIC_CONSTANT(bool, value = false); }; template<typename T> class is_other<other<T> > { public: BOOST_STATIC_CONSTANT(bool, value = true); }; template<typename T> class unwrap_other { public: typedef T type; }; template<typename T> class unwrap_other<other<T> > { public: typedef T type; }; } # else // no partial specialization }} // namespace boost::python #include <boost/type.hpp> namespace boost { namespace python { namespace detail { typedef char (&yes_other_t)[1]; typedef char (&no_other_t)[2]; no_other_t is_other_test(...); template<typename T> yes_other_t is_other_test(type< other<T> >); template<bool wrapped> struct other_unwrapper { template <class T> struct apply { typedef T type; }; }; template<> struct other_unwrapper<true> { template <class T> struct apply { typedef typename T::type type; }; }; template<typename T> class is_other { public: BOOST_STATIC_CONSTANT( bool, value = ( sizeof(detail::is_other_test(type<T>())) == sizeof(detail::yes_other_t))); }; template <typename T> class unwrap_other : public detail::other_unwrapper< is_other<T>::value >::template apply<T> {}; } # endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION }} // namespace boost::python #endif // #ifndef OTHER_DWA20020601_HPP