Mercurial > hg > vamp-build-and-test
view DEPENDENCIES/generic/include/boost/tr1/detail/math_overloads.hpp @ 109:c4758b1b1089
Support linux32 builds from linux64 host; fix mistaken misidentification of all plugins as VamPy plugins
author | Chris Cannam |
---|---|
date | Tue, 08 Sep 2015 11:35:05 +0100 |
parents | 2665513ce2d3 |
children |
line wrap: on
line source
// (C) Copyright John Maddock 2005. // Use, modification and distribution are subject to 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 BOOST_TR1_MATH_OVERLOADS_HPP_INCLUDED # define BOOST_TR1_MATH_OVERLOADS_HPP_INCLUDED # include <boost/config.hpp> # ifndef BOOST_NO_SFINAE # include <boost/utility/enable_if.hpp> # include <boost/type_traits/is_convertible.hpp> # define BOOST_TR1_MATH_RETURN(RET) typename ::boost::enable_if< ::boost::is_convertible<T,double>, RET >::type # else # define BOOST_TR1_MATH_RETURN(RET) RET # endif # include <boost/type_traits/is_floating_point.hpp> # include <boost/type_traits/is_same.hpp> # include <boost/mpl/if.hpp> namespace boost{ namespace tr1_detail{ template <class T, class U> struct largest_real { typedef typename boost::mpl::if_< boost::is_same<long double, T>, long double, typename boost::mpl::if_< boost::is_same<long double, U>, long double, typename boost::mpl::if_< boost::is_same<double, T>, double, typename boost::mpl::if_< boost::is_same<double, U>, double, float >::type >::type >::type >::type type; }; template <class T, class U> struct promote_to_real { typedef typename largest_real< typename boost::mpl::if_< boost::is_floating_point<T>, T, double>::type, typename boost::mpl::if_< boost::is_floating_point<U>, U, double>::type >::type type; }; } } #endif