Chris@16: // Copyright (c) 2009 John Maddock Chris@16: // Use, modification and distribution are subject to the Chris@16: // Boost Software License, Version 1.0. (See accompanying file Chris@16: // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Chris@16: Chris@16: #ifndef BOOST_MATH_ICONV_HPP Chris@16: #define BOOST_MATH_ICONV_HPP Chris@16: Chris@16: #ifdef _MSC_VER Chris@16: #pragma once Chris@16: #endif Chris@16: Chris@16: #include Chris@16: #include Chris@16: Chris@16: namespace boost { namespace math { namespace detail{ Chris@16: Chris@16: template Chris@16: inline int iconv_imp(T v, Policy const&, mpl::true_ const&) Chris@16: { Chris@16: return static_cast(v); Chris@16: } Chris@16: Chris@16: template Chris@16: inline int iconv_imp(T v, Policy const& pol, mpl::false_ const&) Chris@16: { Chris@16: BOOST_MATH_STD_USING Chris@16: return iround(v, pol); Chris@16: } Chris@16: Chris@16: template Chris@16: inline int iconv(T v, Policy const& pol) Chris@16: { Chris@16: typedef typename boost::is_convertible::type tag_type; Chris@16: return iconv_imp(v, pol, tag_type()); Chris@16: } Chris@16: Chris@16: Chris@16: }}} // namespaces Chris@16: Chris@16: #endif // BOOST_MATH_ICONV_HPP Chris@16: