1 // Copyright 2005 Alexander Nasonov. 2 // Distributed under the Boost Software License, Version 1.0. (See 3 // accompanying file LICENSE_1_0.txt or copy at 4 // http://www.boost.org/LICENSE_1_0.txt) 5 6 #ifndef FILE_boost_type_traits_promote_hpp_INCLUDED 7 #define FILE_boost_type_traits_promote_hpp_INCLUDED 8 9 #include <boost/config.hpp> 10 #include <boost/type_traits/integral_promotion.hpp> 11 #include <boost/type_traits/floating_point_promotion.hpp> 12 13 // Should be the last #include 14 #include <boost/type_traits/detail/type_trait_def.hpp> 15 16 namespace boost { 17 18 namespace detail { 19 20 template<class T> 21 struct promote_impl 22 : public integral_promotion< 23 BOOST_DEDUCED_TYPENAME floating_point_promotion<T>::type 24 > 25 { 26 }; 27 28 } 29 30 BOOST_TT_AUX_TYPE_TRAIT_DEF1( 31 promote 32 , T 33 , BOOST_DEDUCED_TYPENAME boost::detail::promote_impl<T>::type 34 ) 35 } 36 37 #include <boost/type_traits/detail/type_trait_undef.hpp> 38 39 #endif // #ifndef FILE_boost_type_traits_promote_hpp_INCLUDED 40 41