| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

Gaudi::Math::detail::_IDigit< TYPE, I, N > Struct Template Reference

Simple structure form compile-time evaluation of the decimal digit for the given number. More...

#include <Digit.h>

Inheritance diagram for Gaudi::Math::detail::_IDigit< TYPE, I, N >:

[legend]
List of all members.

Public Types

 value
 TYPE
 long
enum  { value, TYPE, long, value }

Public Member Functions

 BOOST_STATIC_ASSERT (boost::integer_traits< TYPE >::is_specialized)
 BOOST_STATIC_ASSERT (boost::integer_traits< TYPE >::is_integral)
 BOOST_STATIC_ASSERT (!boost::integer_traits< TYPE >::is_signed)

Private Types

 _imax10 = boost::integer_traits<TYPE>::digits10
 check = N <= _imax10
enum  { _imax10 = boost::integer_traits<TYPE>::digits10, check = N <= _imax10 }

Private Member Functions

 BOOST_STATIC_ASSERT (check)

Detailed Description

template<class TYPE, typename TypeWrapper< TYPE >::value_type I, unsigned int N>
struct Gaudi::Math::detail::_IDigit< TYPE, I, N >

Simple structure form compile-time evaluation of the decimal digit for the given number.

Attention:
the least significat decimal digir is numbered as #0
Author:
Vanya BELYAEV Ivan.Belyaev@nikhef.nl
Date:
2008-08-01

Definition at line 110 of file Digit.h.


Member Enumeration Documentation

template<class TYPE, typename TypeWrapper< TYPE >::value_type I, unsigned int N>
anonymous enum

Enumerator:
value 
TYPE 
long 
value 

Definition at line 117 of file Digit.h.

00118           { 
00119             value = 
00120             Check10<TYPE,N>::safe ? 
00121             (I/Gaudi::Math::IPower<TYPE              ,10,N>::value )%10 :
00122             (I/Gaudi::Math::IPower<unsigned long long,10,N>::value )%10 
00123           } ;

template<class TYPE, typename TypeWrapper< TYPE >::value_type I, unsigned int N>
anonymous enum [private]

Enumerator:
_imax10 
check 

Definition at line 126 of file Digit.h.

00126              {
00127           _imax10 = boost::integer_traits<TYPE>::digits10 ,
00128           check   = N <= _imax10 
00129         } ;


Member Function Documentation

template<class TYPE, typename TypeWrapper< TYPE >::value_type I, unsigned int N>
Gaudi::Math::detail::_IDigit< TYPE, I, N >::BOOST_STATIC_ASSERT ( boost::integer_traits< TYPE >::is_specialized   ) 

Reimplemented in Gaudi::Math::IDigit< TYPE, I, N >.

template<class TYPE, typename TypeWrapper< TYPE >::value_type I, unsigned int N>
Gaudi::Math::detail::_IDigit< TYPE, I, N >::BOOST_STATIC_ASSERT ( boost::integer_traits< TYPE >::is_integral   ) 

Reimplemented in Gaudi::Math::IDigit< TYPE, I, N >.

template<class TYPE, typename TypeWrapper< TYPE >::value_type I, unsigned int N>
Gaudi::Math::detail::_IDigit< TYPE, I, N >::BOOST_STATIC_ASSERT ( !boost::integer_traits< TYPE >::is_signed   ) 

Reimplemented in Gaudi::Math::IDigit< TYPE, I, N >.

template<class TYPE, typename TypeWrapper< TYPE >::value_type I, unsigned int N>
Gaudi::Math::detail::_IDigit< TYPE, I, N >::BOOST_STATIC_ASSERT ( check   )  [private]


The documentation for this struct was generated from the following file:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:02:58 2011 for LHCbMath by doxygen 1.4.7