// Copyright (c) 2009 John Maddock // 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_MATH_ICONV_HPP #define BOOST_MATH_ICONV_HPP #ifdef _MSC_VER #pragma once #endif #include #include namespace boost { namespace math { namespace detail{ template inline int iconv_imp(T v, Policy const&, std::true_type const&) { return static_cast(v); } template inline int iconv_imp(T v, Policy const& pol, std::false_type const&) { BOOST_MATH_STD_USING return iround(v, pol); } template inline int iconv(T v, Policy const& pol) { typedef typename std::is_convertible::type tag_type; return iconv_imp(v, pol, tag_type()); } }}} // namespaces #endif // BOOST_MATH_ICONV_HPP