1 2#ifndef BOOST_MPL_NUMERIC_CAST_HPP_INCLUDED 3#define BOOST_MPL_NUMERIC_CAST_HPP_INCLUDED 4 5// Copyright Aleksey Gurtovoy 2003-2004 6// 7// Distributed under the Boost Software License, Version 1.0. 8// (See accompanying file LICENSE_1_0.txt or copy at 9// http://www.boost.org/LICENSE_1_0.txt) 10// 11// See http://www.boost.org/libs/mpl for documentation. 12 13// $Id: numeric_cast.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ 14// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ 15// $Revision: 49267 $ 16 17#include <boost/mpl/aux_/config/msvc.hpp> 18#include <boost/mpl/aux_/config/workaround.hpp> 19 20// agurt 21/sep/04: portability macro for the sake of MSVC 6.x-7.0; 21// resolves conflicts with 'boost::numeric_cast' function template. 22// use it in your own code _only_ if you care about compatibility with 23// these outdated compilers! 24#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570) ) 25# define BOOST_MPL_AUX_NUMERIC_CAST numeric_cast_ 26#else 27# define BOOST_MPL_AUX_NUMERIC_CAST numeric_cast 28#endif 29 30namespace boost { namespace mpl { 31 32// no default implementation; the definition is needed to make MSVC happy 33 34template< typename SourceTag, typename TargetTag > struct BOOST_MPL_AUX_NUMERIC_CAST 35{ 36 template< typename N > struct apply; 37}; 38 39}} 40 41#endif // BOOST_MPL_NUMERIC_CAST_HPP_INCLUDED 42