Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:19:22

0001 #ifndef NPSTAT_PROPERDBLFROMCMPL_HH_
0002 #define NPSTAT_PROPERDBLFROMCMPL_HH_
0003 
0004 /*!
0005 // \file ProperDblFromCmpl.h
0006 //
0007 // \brief Compile-time deduction of the underlying floating point type from
0008 //        the given complex type
0009 //
0010 // Author: I. Volobouev
0011 //
0012 // January 2012
0013 */
0014 
0015 #include <complex>
0016 
0017 namespace npstat {
0018   template <class T>
0019   struct ProperDblFromCmpl {
0020     typedef double type;
0021   };
0022 
0023   template <class T>
0024   struct ProperDblFromCmpl<std::complex<T> > {
0025     typedef T type;
0026   };
0027 
0028   template <class T>
0029   struct ProperDblFromCmpl<const std::complex<T> > {
0030     typedef T type;
0031   };
0032 
0033   template <class T>
0034   struct ProperDblFromCmpl<volatile std::complex<T> > {
0035     typedef T type;
0036   };
0037 
0038   template <class T>
0039   struct ProperDblFromCmpl<const volatile std::complex<T> > {
0040     typedef T type;
0041   };
0042 }  // namespace npstat
0043 
0044 #endif  // NPSTAT_PROPERDBLFROMCMPL_HH_