LCOV - code coverage report
Current view: top level - usr/include/boost/numeric/conversion/detail - bounds.hpp (source / functions) Hit Total Coverage
Test: ROSE Lines: 0 4 0.0 %
Date: 2022-12-08 13:48:47 Functions: 0 0 -
Legend: Lines: hit not hit

          Line data    Source code
       1             : //  (c) 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_BOUNDS_DETAIL_FLC_12NOV2002_HPP
      11             : #define BOOST_NUMERIC_CONVERSION_BOUNDS_DETAIL_FLC_12NOV2002_HPP
      12             : 
      13             : #include "boost/limits.hpp"
      14             : #include "boost/config.hpp"
      15             : #include "boost/mpl/if.hpp"
      16             : 
      17             : namespace boost { namespace numeric { namespace boundsdetail
      18             : {
      19             :   template<class N>
      20             :   class Integral
      21             :   {
      22             :       typedef std::numeric_limits<N> limits ;
      23             : 
      24             :     public :
      25             :     
      26           0 :       static N lowest  () { return limits::min BOOST_PREVENT_MACRO_SUBSTITUTION (); }
      27           0 :       static N highest () { return limits::max BOOST_PREVENT_MACRO_SUBSTITUTION (); }
      28             :       static N smallest() { return static_cast<N>(1); }
      29             :   } ;
      30             : 
      31             :   template<class N>
      32             :   class Float
      33             :   {
      34             :       typedef std::numeric_limits<N> limits ;
      35             : 
      36             :     public :
      37             :     
      38           0 :       static N lowest  () { return static_cast<N>(-limits::max BOOST_PREVENT_MACRO_SUBSTITUTION ()) ; }
      39           0 :       static N highest () { return limits::max BOOST_PREVENT_MACRO_SUBSTITUTION (); }
      40             :       static N smallest() { return limits::min BOOST_PREVENT_MACRO_SUBSTITUTION (); }
      41             :   } ;
      42             : 
      43             :   template<class N>
      44             :   struct get_impl
      45             :   {
      46             :     typedef mpl::bool_< ::std::numeric_limits<N>::is_integer > is_int ;
      47             : 
      48             :     typedef Integral<N> impl_int   ;
      49             :     typedef Float   <N> impl_float ;
      50             : 
      51             :     typedef typename mpl::if_<is_int,impl_int,impl_float>::type type ;
      52             :   } ;
      53             : 
      54             : } } } // namespace boost::numeric::boundsdetail.
      55             : 
      56             : #endif
      57             : //
      58             : ///////////////////////////////////////////////////////////////////////////////////////////////

Generated by: LCOV version 1.14