epoc32/include/stdapis/boost/numeric/conversion/converter.hpp
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
     1 //  © Copyright Fernando Luis Cacciola Carballal 2000-2004
     2 //  Use, modification, and distribution is subject to the Boost Software
     3 //  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
     4 //  http://www.boost.org/LICENSE_1_0.txt)
     5 
     6 //  See library home page at http://www.boost.org/libs/numeric/conversion
     7 //
     8 // Contact the author at: fernando_cacciola@hotmail.com
     9 // 
    10 #ifndef BOOST_NUMERIC_CONVERSION_CONVERTER_FLC_12NOV2002_HPP
    11 #define BOOST_NUMERIC_CONVERSION_CONVERTER_FLC_12NOV2002_HPP
    12 
    13 #include "boost/numeric/conversion/conversion_traits.hpp"
    14 #include "boost/numeric/conversion/converter_policies.hpp"
    15 
    16 #include "boost/numeric/conversion/detail/converter.hpp"
    17 
    18 namespace boost { namespace numeric 
    19 {
    20 
    21 template<class T,
    22          class S,
    23          class Traits           = conversion_traits<T,S>,
    24          class OverflowHandler  = def_overflow_handler,
    25          class Float2IntRounder = Trunc< BOOST_DEDUCED_TYPENAME Traits::source_type>  ,
    26          class RawConverter     = raw_converter<Traits>,
    27          class UserRangeChecker = UseInternalRangeChecker
    28         >
    29 struct converter : convdetail::get_converter_impl<Traits,
    30                                                   OverflowHandler,
    31                                                   Float2IntRounder,
    32                                                   RawConverter,
    33                                                   UserRangeChecker
    34                                                  >::type
    35 {
    36   typedef Traits traits ;
    37 
    38   typedef typename Traits::argument_type argument_type ;
    39   typedef typename Traits::result_type   result_type   ;
    40 
    41   result_type operator() ( argument_type s ) const { return this->convert(s) ; }
    42 } ;
    43 
    44 
    45 
    46 template<class S,
    47          class OverflowHandler  = def_overflow_handler,
    48          class Float2IntRounder = Trunc<S>  ,
    49          class UserRangeChecker = UseInternalRangeChecker
    50         >
    51 struct make_converter_from
    52 {
    53   template<class T,
    54            class Traits       = conversion_traits<T,S>,
    55            class RawConverter = raw_converter<Traits>
    56           > 
    57   struct to
    58   {
    59     typedef converter<T,S,Traits,OverflowHandler,Float2IntRounder,RawConverter,UserRangeChecker> type ;
    60   } ;
    61 
    62 } ;
    63 
    64 } } // namespace boost::numeric
    65 
    66 #endif
    67 
    68