CMS 3D CMS Logo

PreciseType.h
Go to the documentation of this file.
1 #ifndef NPSTAT_PRECISETYPE_HH_
2 #define NPSTAT_PRECISETYPE_HH_
3 
14 #include <complex>
15 
16 #include "Alignment/Geners/interface/IOIsNumber.hh"
17 
18 namespace npstat {
19  template <class T, int I=0>
21  {
22  typedef T type;
23  };
24 
25  template <class T>
26  struct PreciseTypeHelper<T, 1>
27  {
28  typedef long double type;
29  };
30 
36  template <class T>
37  struct PreciseType
38  {
40  };
41 
42  template <class T>
43  struct PreciseType<std::complex<T> >
44  {
45  typedef std::complex<long double> type;
46  };
47 
48  template <class T>
49  struct PreciseType<const std::complex<T> >
50  {
51  typedef std::complex<long double> type;
52  };
53 
54  template <class T>
55  struct PreciseType<volatile std::complex<T> >
56  {
57  typedef std::complex<long double> type;
58  };
59 
60  template <class T>
61  struct PreciseType<const volatile std::complex<T> >
62  {
63  typedef std::complex<long double> type;
64  };
65 }
66 
67 #endif // NPSTAT_PRECISETYPE_HH_
68 
std::complex< long double > type
Definition: PreciseType.h:45
PreciseTypeHelper< T, gs::IOIsNumber< T >::value >::type type
Definition: PreciseType.h:39
long double T