williamr@4: // © Copyright Fernando Luis Cacciola Carballal 2000-2004 williamr@4: // Use, modification, and distribution is subject to the Boost Software williamr@4: // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at williamr@4: // http://www.boost.org/LICENSE_1_0.txt) williamr@4: williamr@4: // See library home page at http://www.boost.org/libs/numeric/conversion williamr@4: // williamr@4: // Contact the author at: fernando_cacciola@hotmail.com williamr@4: // williamr@4: #ifndef BOOST_NUMERIC_CONVERSION_CONVERTER_FLC_12NOV2002_HPP williamr@4: #define BOOST_NUMERIC_CONVERSION_CONVERTER_FLC_12NOV2002_HPP williamr@4: williamr@4: #include "boost/numeric/conversion/conversion_traits.hpp" williamr@4: #include "boost/numeric/conversion/converter_policies.hpp" williamr@4: williamr@4: #include "boost/numeric/conversion/detail/converter.hpp" williamr@4: williamr@4: namespace boost { namespace numeric williamr@4: { williamr@4: williamr@4: template, williamr@4: class OverflowHandler = def_overflow_handler, williamr@4: class Float2IntRounder = Trunc< BOOST_DEDUCED_TYPENAME Traits::source_type> , williamr@4: class RawConverter = raw_converter, williamr@4: class UserRangeChecker = UseInternalRangeChecker williamr@4: > williamr@4: struct converter : convdetail::get_converter_impl::type williamr@4: { williamr@4: typedef Traits traits ; williamr@4: williamr@4: typedef typename Traits::argument_type argument_type ; williamr@4: typedef typename Traits::result_type result_type ; williamr@4: williamr@4: result_type operator() ( argument_type s ) const { return this->convert(s) ; } williamr@4: } ; williamr@4: williamr@4: williamr@4: williamr@4: template , williamr@4: class UserRangeChecker = UseInternalRangeChecker williamr@4: > williamr@4: struct make_converter_from williamr@4: { williamr@4: template, williamr@4: class RawConverter = raw_converter williamr@4: > williamr@4: struct to williamr@4: { williamr@4: typedef converter type ; williamr@4: } ; williamr@4: williamr@4: } ; williamr@4: williamr@4: } } // namespace boost::numeric williamr@4: williamr@4: #endif williamr@4: williamr@4: